防止使用重复键值添加KVP值c#

时间:2015-03-09 06:04:04

标签: c# list duplicates key keyvaluepair

我有一个(int,int)KeyValuePairs列表,如果密钥已经存在,我希望阻止添加。这个功能已经存在吗?或者我是否必须以其他方式阻止添加?

编辑:此外,我希望能够按升序对值进行排序。有没有办法做到这一点?

提前致谢!

2 个答案:

答案 0 :(得分:1)

而不是List<> KeyValuePair最佳方法是使用Dictionary,这也是一个键值对集合,但有其他成员。

Dictionary

  

表示键和值的集合。

在您的情况下,您可以简单地使用Dictionary<int,int>,这意味着具有int键和int值的字典。

密钥唯一性

  

根据字典的相等比较器

,词典中的每个键必须是唯一的

添加数据时,只需使用Dictionary.ContainsKey Method,这将返回Boolean值以指示密钥存在。

ContainsKey Method :

  

确定Dictionary是否包含指定的键。

希望您能获得完整的文件并满足要求。

附加:进行排序,使用LINQ很容易(Source

// dictionary is our Dictionary<int,int>
var items = from pair in dictionary orderby pair.Value ascending select pair; 

// Display results.
 foreach (KeyValuePair<string, int> pair in items)
 { 
      Console.WriteLine("{0}: {1}", pair.Key, pair.Value);
 } 

答案 1 :(得分:0)

你有没有使用词典的原因?

使用普通List和KeyValuePair,您可以使用以下代码

//在函数内部

foreach (KeyValuePair<int, int> kvp in myList)  
   if (kvp.Key == key)  
        return;  
myList.Add(new KeyValuePair<int, int>(key, value));  

编辑: 使用词典时,您可以使用以下代码

var items = from pair in dictionary
            orderby pair.Value ascending
            select pair;
相关问题