按c#中的值排序三维字典

时间:2016-11-23 06:39:49

标签: c# .net sorting dictionary

我有以下三维词典。

class CopyDir
{
    public class MyFileInfo
    {
        public int Num{ get; set; }
        public long Size { get; set; }
    }
    public static Dictionary<string, MyFileInfo> logInfo;

我想根据字段大小对字典进行排序。

logInfo.OrderBy说 错误CS1061&#39;字典&#39;不包含&#39; OrderBy&#39;的定义没有扩展方法&#39; OrderBy&#39;接受第一个类型&#39; Dictionary&#39;可以找到(你错过了使用指令或程序集引用吗?)

4 个答案:

答案 0 :(得分:1)

您可以使用LINQ扩展轻松对其进行排序。我们正在对字典的值进行排序。

<input>

答案 1 :(得分:1)

如果您想代表字典(例如在控制台上打印) 如果订购了它们的值,请尝试使用 Linq

   var result = logInfo
     .OrderBy(pair => pair.Value.Size)
     .ThenBy(pair => pair.Num); // in case of tie, let's order by Num

测试

   var test = result
     .Select(item => $"{item.Key,6}: Size = {item.Size,6}; Num = {item.Num,6}");

   Console.Write(string.Join(Environment.NewLine, test)); 

答案 2 :(得分:0)

这可能会为你做到这一点

logInfo.OrderBy(x=>x.Value.Size);

答案 3 :(得分:0)

var sorted = logInfo.OrderBy(pair => pair.Value.Size);