我试图弄清楚如何在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)); }}上面的代码不起作用。有人可以帮忙一点语法。我没有在网上找到任何具体的例子。任何帮助表示赞赏。
2 回答
猛跑小猪
TA贡献1858条经验 获得超8个赞
根据您的评论,这听起来确实像您要在此处使用字典。
考虑一下您的逻辑,您已经在添加到列表之前检查重复项了吗?这意味着您的列表将永远不会重复。字典可防止您拥有重复的键,而不是重复的值。因此,您的逻辑很容易变成:
var dictionary = new Dictionary<char, int>();
foreach(char c in input)
{
//faster than Any()
if(!dictionary.ContainsKey(c))
{
dictionary.Add(c, 1);
}
}
- 2 回答
- 0 关注
- 156 浏览
添加回答
举报
0/150
提交
取消