在C#中使用键/值存储已排序数据的最佳方法是什么?

时间:2017-12-12 02:13:38

标签: c#

我是C#的新手,我对使用key /存储数据的所有方式感到有些迷茫 值。

我在key和int中有一个字符串,它是一个值的长度,我想存储它们并按值对它们进行排序。

我需要采取哪种方式? Dictionary,SortedDictionary,List,KeyValuePair SortedList ...

感谢您的帮助!

1 个答案:

答案 0 :(得分:1)

对于大多数情况,您只需使用Dictionary<string, int>即可。如果您想要排序,您可以在检索期间进行排序,例如

var d = new Dictionary<string, int>();
d.Add("Key2",2);
d.Add("Key1",1);

//Sort by key
foreach (var k1 in d.OrderBy(a => a.Key))
    Console.Writeline(k1.Value);

//Sort by value
foreach (var k2 in d.OrderBy(a => a.Value))
    Console.Writeline(k2.Value);

分类的开销很小,大多数开发人员都不关心。

如果您有一个非常大的列表,并且想要更有效的排序,则可以使用SortedDictionary代替。插入字典会有更多的开销,但检索效率会更高。但是SortedDictionary按键排序,而不是按值排序,因此它可能不适用于您的情况。