2009-03-18 7 views
0

Je suis en train d'apprendre lambda en C# 3, et je me demandais comment cette fonction serait écrite à l'aide lambdas:Lambda question

que vous avez une collection de valeurs Point3.

Pour chacun de ces points, p:

créer un nouveau p, où .Y est:

Math.Sin ((center - p).Length * f) 

centre et f sont des variables externes qui doivent être fournis à la fonction. Le type Point3 aura également un constructeur qui prendra les valeurs x, y, z.

Répondre

7

collection d'entrée est source, collection de sortie est result:

IEnumerable<Point3> source = ... 

IEnumerable<Point3> result = source.Select(p => new Point3(p.x, Math.Sin ((center - p).Length * f), p.z); 
1
List<Point> oldList = .....; 
List<Point> newList = List<Point>(); 
double center = ...; 
double f = ....; 

oldList.ForEach(p=> 
    newList.Add(new Point(p.X, Math.Sin ((center - p).Length * f), p.Z));); 
+0

Merci James. J'ai toujours besoin du premier ";" trop juste? –

+0

Assez sûr le premier; est une erreur de syntaxe sauf si le corps du lambda est dans {accolades}. –

+0

Earwicker a raison. La première ";" est une erreur. (force de l'habitude) –