我可以通过循环简化查询的结果来做到这一点:
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 语句中是否有可能。
具有两个成员的匿名类:名称和值。名称是“X”或“Y”,具体取决于字段 1,值是满足条件的记录的所有字段 2 值的总和。我想我需要使用 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
};
提前致谢!