【问题标题】:Sort a Dictionary using LINQ使用 LINQ 对字典进行排序
【发布时间】:2011-07-18 10:16:49
【问题描述】:

我有一个

Dim carsDic as Dictionary(Of String, Integer)
Dictionary<string, int> carsDic;

这是汽车代码列表(字符串)及其时间(整数,以分钟为单位);

我想按时间排序汽车,然后按代码,并返回较松的(时间较高,代码较高)。

我该如何使用 LINQ 呢? (VB.NET!!,C#?!)

【问题讨论】:

    标签: .net linq sorting


    【解决方案1】:
    var loser = carsDic.OrderByDescending(x => x.Value)
                       .ThenByDescending(x => x.Key).First();
    

    【讨论】:

    • 我的字母少了一点:)
    【解决方案2】:

    carsDic.OrderBy(cd =&gt; cd.Value).ThenBy(cd =&gt; cd.Key).Last()

    【讨论】:

      【解决方案3】:
      var deadLastCar = carsDic.OrderByDescending(e => e.Value).ThenByDescending (e => e.Key).First();
      

      【讨论】:

      • 这不是最好的车,真的,我想要))
      • 编辑为不是最好的汽车。 ;)
      • ) 这真的应该是 worstCar )
      • 赛车模拟之类的东西,你想要最后的车吗? =)
      • 在实际应用中我对这些值有不同的含义,为了清楚起见,这里只是这样。
      【解决方案4】:

      由于这是作业,我不会提供现成的答案。

      最简单(最直接)的方法是将所有信息放入List&lt;Something&gt;,其中Something 是一个具有CodeTime 属性的类。它可以是匿名类型(想想select new { Code = "X", Time = 0 })、元组或您自己的类。

      然后您可以尝试根据您的要求对List 进行排序。

      尝试弄清楚上述可能如何实施,如果您在此过程中需要更具体的帮助,请编辑问题。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2016-05-30
        • 1970-01-01
        • 2011-06-09
        • 2014-05-26
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多