繁体   English   中英

转换字典 <string, myClass> 列出 <double[]> 使用C#LINQ

[英]convert Dictionary<string, myClass> to List<double[]> using c# linq

我有一本<string,Rate>的字典

费率定义为:

class Rate
{
  public string Name { get; set;}
  public int Tier{ get; set;}
  public double Value { get; set;}

  public Rate(string name,int tr,double val)
   { Name = name; Tier = tr; Value = val;}
}

我希望将此字典转换为List,其中List从上方的Rate中按Tier细分(分组),并且double数组也保存来自Rate的Values。

Rate rate1 = new Rate("One",1,1.1);
Rate rate2 = new Rate("Two",1,2.2);
Rate rate3 = new Rate("Three",2,3.3);

因此,如果..

Dictionary<string,Rate> rates = new Dictionary<string,Rate> { {rate1.Name,rate1},{rate2.Name,rate2},{rate3.Name,rate3}};


List<double[]> myList = (linq result from Rates separated list of arrays by tier)

那么myList [0]将计为1.1和2.2,而myList [1]将计为3.3。

答案很好,但我需要修改问题以提供按层排序的列表。

List<double[]> list = rates
            .GroupBy(pair => pair.Value.Class, pair => pair.Value.Value)
            .Select(doubles => doubles.Select(d => d).ToArray())
            .ToList();
List<double[]> myList = rates.GroupBy(p => p.Value.Tier)
                             .Select(g => g.Select(p => p.Value.Value).ToArray())
                             .ToList();

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM