これを行うには、簡略化されたクエリの結果をループします。
var query = from myrecord in dt.AsEnumerable()
where myrecord.Field<string>("field1") == "value1" || myrecord.Field<string>("field1") == "value2"
select myrecord;
foreach(var myrecord in query)
{
//if value1, then "X"
//sum += field2
}
しかし、それがLINQステートメント内で可能かどうかを知りたいです。
名前と値の2つのメンバーを持つ匿名クラス。名前はfield1に応じて「X」または「Y」であり、Valueは条件が満たされたレコードのすべてのfield2値の合計です。Count()メソッドを使用する必要があると思いますが、方法や場所がわかりません。一時テーブルからカウントを取得するには、「group」と「into」を使用する必要があるかもしれません。
(field1 == "value1")のレコードがある場合、文字列は "X"になり、そうでない場合、文字列は"Y"になります。
var query = from table in dt.AsEnumerable()
where table.Field<string>("field1") == "value1" ||
table.Field<string>("field1") == "value2"
select new
{
Name = (condition ? "X" : "Y"),
Value = //sum all field2 values
};
前もって感謝します!