防止添加具有重复键值的 KVP c#
preventing adds of KVPs with duplicate key Values c#
我有一个 (int,int) KeyValuePairs 列表,如果密钥已经存在,我想防止添加到这个列表中。这个功能已经存在了吗?还是我必须以其他方式阻止添加?
编辑:另外,我希望能够按值升序对集合进行排序。有没有办法做到这一点?
提前致谢!
最好的方法是使用 Dictionary
而不是 List<>
of KeyValuePair
,这也是一个键值对集合,但有额外的成员。
Represents a collection of keys and values.
在您的情况下,您可以简单地使用 Dictionary<int,int>
,这意味着具有 int
键和 int
值的字典。
密钥唯一性
Every key in a Dictionary must be unique according to the dictionary's equality comparer
添加数据时,只需使用 Dictionary.ContainsKey
Method 即可 return 一个 Boolean
值来指示 Key 存在。
Determines whether the Dictionary contains the specified key.
希望您仔细阅读文件并满足要求。
附加: 用于排序,,使用 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);
}
您有没有使用词典的原因?
要使用普通的 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;
我有一个 (int,int) KeyValuePairs 列表,如果密钥已经存在,我想防止添加到这个列表中。这个功能已经存在了吗?还是我必须以其他方式阻止添加?
编辑:另外,我希望能够按值升序对集合进行排序。有没有办法做到这一点?
提前致谢!
最好的方法是使用 Dictionary
而不是 List<>
of KeyValuePair
,这也是一个键值对集合,但有额外的成员。
Represents a collection of keys and values.
在您的情况下,您可以简单地使用 Dictionary<int,int>
,这意味着具有 int
键和 int
值的字典。
密钥唯一性
Every key in a Dictionary must be unique according to the dictionary's equality comparer
添加数据时,只需使用 Dictionary.ContainsKey
Method 即可 return 一个 Boolean
值来指示 Key 存在。
Determines whether the Dictionary contains the specified key.
希望您仔细阅读文件并满足要求。
附加: 用于排序,,使用 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);
}
您有没有使用词典的原因?
要使用普通的 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;