我有布局,像这样一本字典:问题转化词典使用LINQ
Dictionary<string, List<Series>> example = new Dictionary<string, List<Series>>();
example.Add("Meter1",new List<Series>(){ new Series{ name="Usage", data = new double[] {1,2,3}},
new Series{ name = "Demand", data= new double[]{4,5,6}}});
example.Add("Meter2", new List<Series>(){ new Series{ name="Usage", data = new double[] {1,2,3}},
new Series{ name = "Demand", data= new double[]{4,5,6}}});
我需要的是:
Dictionary<string, List<Series>> exampleResult = new Dictionary<string, List<Series>>();
exampleResult.Add("Usage", new List<Series>(){ new Series{ name="Meter1", data = new double[] {1,2,3}},
new Series{ name = "Meter2", data= new double[]{1,2,3}}});
exampleResult.Add("Demand", new List<Series>(){ new Series{ name="Meter1", data = new double[] {4,5,6}},
new Series{ name = "Meter2", data= new double[]{4,5,6}}});
也就是说,辞典投影的“杯酒人生”,与每个系列的名称作为新字典中的关键字,并将旧字典的关键字用作系列的名称。
这里的一系列类...
public class Series
{
public string name { get; set; }
public double[] data { get; set; }
}
很抱歉,如果我没有表达清楚这个问题,请向你喜欢的任何问题,并在此先感谢您的帮助......
编辑添加示例
听起来像是某种换位。 'Enumerable.ToLookup'可能是你需要的:) – leppie 2010-10-18 13:29:57
第二个想法,为什么不创建一个自定义字典,封装转置视图?意思是,在插入/更新/删除时,您可以修改替代视图。如果它只是一次性的过程,那么LINQ解决方案可能会更加优雅。 – leppie 2010-10-18 13:31:49
字典类型对我来说并不完全清楚。一个简短但完整的例子将非常有用。 – 2010-10-18 13:32:43