【发布时间】:2018-06-12 09:42:08
【问题描述】:
类:
class myClass
{
public int processId { get; set; }
public string measurement { get; set; }
public decimal measurementValue { get; set; }
public string otherText { get; set; }
}
代码:
List<myClass> myClasses = new List<myClass> {
new myClass { processId=1, measurement="height", measurementValue=10,otherText="312312" },
new myClass { processId=1, measurement="length", measurementValue=11 ,otherText="312312"},
new myClass { processId=1, measurement="width", measurementValue=12 ,otherText="312312"},
new myClass { processId=2, measurement="height", measurementValue=20 ,otherText="312312"},
new myClass { processId=2, measurement="length", measurementValue=21 ,otherText="312312"},
new myClass { processId=2, measurement="width", measurementValue=22 ,otherText="312312"}
};
var groups = myClasses
.GroupBy(o => o.processId)
.ToDictionary(g => g.Select(x => x.measurement), g => g.Select(x => x.measurementValue));
groups 是Dictionary<IEnumerable<string>, Dictionary<IEnumerable<decimal>>
如何循环分组以获取所有键和值?我没弄明白。
foreach(var group in groups)
{
//????
}
【问题讨论】:
-
您确定要将 IEnumerable
作为字典的键吗? -
@CodeNotFound 它是由 linq 生成的
-
因你而由Linq生成=>
.ToDictionary(g => g.Select(x => x.measurement), ...)。通常我们这样做 =>.ToDictionary(g => g.Key, ...
标签: c# dictionary .net-4.0