我有以下三维词典。
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;可以找到(你错过了使用指令或程序集引用吗?)答案 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);