2009-03-18 7 views
0

私はC#3にラムダを学ぼうと、この関数はラムダを使用して書かれるだろうか疑問に思って:ラムダ質問

あなたはPoint3と値のコレクションを持っていると言います。これらの点の各々について

、P:

.Yは新しいP、作成:

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

を中心とfは関数に提供される外部変数です。また、Point3型には、x、y、zの値をとるコンストラクタがあります。

答えて

7

入力コレクションがsourceで、出力コレクションは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

感謝ジェームズ。私はまだ最初の ";"が必要です右すぎる? –

+0

まず最初に確かめてください。ラムダ本体が{中括弧}内にない限り、構文エラーです。 –

+0

Earwickerが正しいです。最初 ";"間違いです。 (習慣の力) –