0
我有一個字符串作爲關鍵字和整數列表的有序列表作爲值的字典;是否有可能根據c#中的值的順序進行排序?排序字典<字符串,列表<int>>基於值
例如: myDict:
{
"hp",<10,14,23>
"dell", <6,8,9,10>
"asus", <6,9,18>
"mac", <7,98>
}
排序爲:
{
"dell", <6,8,9,10>
"asus", <6,9,18>
"mac", <7,98>
"hp",<10,14,23>
}
這是我曾嘗試:
//this creates a dictionary with requirements stated above for testing
Dictionary<string, List<int>> myDict = new Dictionary<string, List<int>
>();
var numbers = "8,13,16,21,24,25,31,33,36,63,66,70,76,82,94".Split(',').Select(Int32.Parse).ToList();
myDict .Add("asus", numbers);
numbers = "6,84,90,99".Split(',').Select(Int32.Parse).ToList();
myDict .Add("dell", numbers);
numbers = "10,11,20,21,23,26,28,29,31,38,39,40,50,52,61,65,66,70,75,94".Split(',').Select(Int32.Parse).ToList();
myDict.Add("hp", numbers);
numbers = "4,17,42,56,62,79,80".Split(',').Select(Int32.Parse).ToList();
myDict .Add("mac",numbers);
是該做的部分分類:
var orderedDictionary = myDict.OrderByDescending(pairs => pairs.Value);
上面給出的錯誤是「至少有一個對象必須實現IComparable」。 我也曾嘗試列表轉換爲字符串並執行以下操作:
var sortedDict = from entry in myDict
orderby entry.Value
ascending
select entry;
的上方。然而工作它把數字作爲字符串;因此10,85之前會出現8,6我猜這是因爲「,」ASCII表示比數字更高。
如何在c#中對排序的整數列表進行排序?或通過檢查其他單元格上的每個單元格進行手動排序的唯一方法?
對於小的修改任職;而不是.length我用.count;因爲列表沒有長度方法。 – ibininja
你是完全正確的,修復了我的答案。 – YuvShap