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

时间:2010-02-10 06:29:28

标签: linq

场景是这样的:

name | val  
'aa' | 10
'bb' | 20
'cc' | 30
*********
sum  | 60

现在我只需选择简单LINQ查询中的所有记录并调用枚举器(ToList()

然后我遍历列表并总结val列。

有更好的方法吗? LINQ选择所有新类型的对象,所以我不知道如何添加其他数据。

感谢。

1 个答案:

答案 0 :(得分:2)

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

        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 };