首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何循环Dictionary<IEnumerable<string>,Dictionary<IEnumerable<decimal>>?

如何循环Dictionary<IEnumerable<string>,Dictionary<IEnumerable<decimal>>?
EN

Stack Overflow用户
提问于 2018-06-12 09:42:08
回答 1查看 104关注 0票数 2

类:

代码语言:javascript
复制
class myClass
{
    public int processId { get; set; }
    public string measurement { get; set; }
    public decimal measurementValue { get; set; }
    public string otherText { get; set; }
}

代码:

代码语言:javascript
复制
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));

groupsDictionary<IEnumerable<string>, Dictionary<IEnumerable<decimal>>

如何对所有键和值进行分组循环?我没能弄明白。

代码语言:javascript
复制
foreach(var group in groups)
{
    //????
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-06-12 09:54:41

结果groups对象在我看来不符合逻辑。这本字典使它易于循环,而且它似乎也更符合逻辑:

代码语言:javascript
复制
var groups = myClasses
    .GroupBy(o => o.processId)
    .ToDictionary(g => g.Key, g => g.Select(x => new {Measurement = x.measurement, Value = x.measurementValue}));

然后在组中循环和记录:

代码语言:javascript
复制
foreach (var item in groups)
{
    Debug.WriteLine($"Key: {item.Key}, Value: {"\t" + string.Join(Environment.NewLine + "\t\t\t\t", item.Value.Select(i => $"{nameof(i.Measurement)}:{i.Measurement},{nameof(i.Value)}:{i.Value}"))}");
}

将产生结果:

代码语言:javascript
复制
Key: 1, Value:  Measurement:height,Value:10
                Measurement:length,Value:11
                Measurement:width,Value:12 
Key: 2, Value:  Measurement:height,Value:20
                Measurement:length,Value:21
                Measurement:width,Value:22
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50814010

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档