如何在 LINQ to DataSet 中的匿名类中使用基于查询数据的条件?
我可以通过循环简化查询的结果来做到这一点:
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
};
提前致谢!
I can do this by looping the result of a simplified query:
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
}
But, I want to know if it's possible within the LINQ statement.
Anonymous class with two members: Name and Value. Name is "X" or "Y" depending on field1 and Value is the sum of all field2 values for records where the conditions are met. I think I need to use the Count() method, but I'm not sure how or where. Maybe I need to use "group" and "into" to get the count from a temporary table?
If there are records with (field1 == "value1"), the string will be "X" else the string will be "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
};
Thanks in advance!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
您只需使用已有的“表”变量即可。
You just use the "table" variable that you already have.
您可以通过执行以下操作获得表的总和
You can just get the sum of the table by doing
当然可以,以下示例的工作原理类似
sure you can, Following sample works similarly