与えられたクラス
public class data
{
public string x;
public double y;
}
List<data> myList = new List<data>();
リストには、文字列「奇数」、文字列「偶数」のいずれかのデータがそれぞれの数値とともに入力されます。
linq を使用してすべての x = "odd" の合計を取得するにはどうすればよいですか?
これはほとんどの人にとって基本的なことです。私の無知を許してください...
基本的な質問をしているので、ここから始めてください: Standard Query Operators Overview。「関連セクション」の下にあるものはすべてチェックする価値があります。
回答で使用される関数の参照 (例を含む) は次のとおりです: Where(predicate)、Sum(selector)
Whereのみdataを取得するために使用し、合計を取得するためにx == "odd"使用します。Sum
double sumOdd = myList.Where(d => d.x == "odd").Sum(d => d.y);
これを試して
List<data> myList = new List<data>();
var odd = myList.Where(p => p.x == "odd").Sum(z => z.y) ;
var even = myList.Where(p => p.x == "even").Sum(z => z.y) ;
次のようなことができます。
var sum = myList.Where(d => d.x == "odd").Sum(d => d.y);
パーティーに遅れますが、andを使用する必要はありません:)WhereSum
dataList.Aggregate(0, (result, next) => result + (next.x == "odd" ? next.y : 0.0));