我试图总结" col3"通过排序和分组" col1"和" col2"使用C#Linq。
{{1}}
我正在尝试将输出作为
新val 1
- New val 2
- New val 3
总计 - 30
答案 0 :(得分:0)
创建ExpandoObject的原因是什么,但是像字典一样使用它?如果您知道属性集(col1,col2,col3),最好为它创建单独的类,否则可以这样做。
var list = new List<dynamic>();
dynamic e1 = new ExpandoObject();
e1.col1 = "New val 1";
e1.col2 = "New val 2";
e1.col3 = 20;
list.Add(e1);
dynamic e2 = new ExpandoObject();
e2.col1 = "New val 1";
e2.col2 = "New val 3";
e2.col3 = 10;
list.Add(e2);
foreach (var group in list
.OrderBy(e => e.col1)
.GroupBy(o => o.col1))
{
Debug.WriteLine((string)group.Key);
var sum = 0;
foreach (var item in group)
{
Debug.WriteLine(" " + (string)item.col2);
sum += item.col3;
}
Debug.WriteLine("Total: " + sum);
}