【发布时间】:2019-12-03 21:55:49
【问题描述】:
我试图弄清楚如何在 C# 中使用 KeyValuePairs 列表。我会使用字典,但它们不允许重复值。
还有查找,我也无法弄清楚如何编写语法。
我见过其他解决方案,但我真的很困惑如何使用
当然,我能找到的唯一例子是 for 循环,我想让它更简洁一些。
List<KeyValuePair<char, int>> data = new List<KeyValuePair<char, int>>();
例如,我想在添加元素之前进行一些检查。 例如:我有一个字符数组,我想在将其添加到我的列表之前对其进行检查。谁能告诉我如何检查。
char[] inputArray = input.ToCharArray();
for(int i = 0; i < inputArray.Length ; i++)
{
if(!data.Values.Contains(inputArray[i]))
{
data.Add(new KeyValuePair<char,int>(inputArray[i], 1));
}
}
上面的代码不起作用。有人可以帮助一下语法。
我没有在网上找到任何具体的例子。 任何帮助表示赞赏。
【问题讨论】:
-
我不知道你想做什么。字典的全部意义在于存储唯一的键......所以不,它不允许重复,如果这样做会非常糟糕。
-
好的,所以你说你不想要重复的键,但是你的循环看起来是在检查重复的条目而不是添加它们,所以我不确定你为什么不能使用字典?您还根据键检查数组,但将
1添加到以数组为键的值中,这也没有多大意义...... -
您的问题是“数据”是一个列表,没有“值”方法。请注意 Cocowalla 在他的回答中的语法。 Any() 方法有效地循环遍历您的 kvp 列表并比较每个键。此外,如果您的逻辑试图防止重复键,您应该只使用字典,它更容易使用。
标签: c# linq keyvaluepair