Linq 如何在一个查询中选择记录和摘要?

Linq 如何在一个查询中选择记录和摘要?,linq,Linq,场景如下: name | val 'aa' | 10 'bb' | 20 'cc' | 30 ********* sum | 60 现在,我只需选择简单LINQ查询中的所有记录并调用枚举器(ToList()) 然后我在列表上循环并总结val列 有更好的办法吗?LINQ将all选择到一个新的类型化对象,因此我不知道如何添加额外的数据 谢谢。匿名类型创建后不能添加或编辑值。因此,您可以使用自定义输出类,而不是返回匿名类型。像这样的 public class ResClass

场景如下:

name | val  
'aa' | 10
'bb' | 20
'cc' | 30
*********
sum  | 60
现在,我只需选择简单LINQ查询中的所有记录并调用枚举器(
ToList()

然后我在列表上循环并总结
val

有更好的办法吗?LINQ将all选择到一个新的类型化对象,因此我不知道如何添加额外的数据


谢谢。

匿名类型创建后不能添加或编辑值。因此,您可以使用自定义输出类,而不是返回匿名类型。像这样的

        public class ResClass
        {
            public string name;
            public int value;
        }

        public class OutClass
        {
             public int sum;
             public List<ResClass> lstData;
        }

        int sum=0;
        var outtt = objTT.Where(x => x.id == 1).Select(x =>
        {
            sum += x.value;
            return new ResClass { name =  x.name, value= x.value };

        }).ToList();

        OutClass outCls = new OutClass { sum = sum, lstData = outtt };
公共类重新分类
{
公共字符串名称;
公共价值观;
}
公开课比公开课强
{
公共整数和;
公共数据清单;
}
整数和=0;
var outtt=objTT.Where(x=>x.id==1)。选择(x=>
{
总和+=x.值;
返回新的重新类{name=x.name,value=x.value};
}).ToList();
OutClass outCls=新的OutClass{sum=sum,lstData=outtt};

感谢您的重播。“sum+=x.value;”对我来说是一种新方法。是否有某种方法可以通过从x到y选择来实现这一点。。风格?@ari,“sum+=x.value”只不过是“sum=sum+x.value”,这意味着它将每次迭代的x.value相加来计算总和。我不认为我们在“从x到y风格”中不能做到这一点,我不确定。。因为我使用的是匿名方法,所以这是一种方法。。。嗯,至少是的,我比较熟悉+=approuch。在select中包含“脱离上下文”命令的选项对我来说是新选项。我一直在用“从x到y”的方式工作。。