猿问

键值对C#

我试图弄清楚如何在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));

    }

}

上面的代码不起作用。有人可以帮忙一点语法。


我没有在网上找到任何具体的例子。任何帮助表示赞赏。


凤凰求蛊
浏览 157回答 2
2回答

猛跑小猪

根据您的评论,这听起来确实像您要在此处使用字典。考虑一下您的逻辑,您已经在添加到列表之前检查重复项了吗?这意味着您的列表将永远不会重复。字典可防止您拥有重复的键,而不是重复的值。因此,您的逻辑很容易变成:var dictionary = new Dictionary<char, int>();foreach(char c in input){&nbsp; &nbsp; //faster than Any()&nbsp; &nbsp; if(!dictionary.ContainsKey(c))&nbsp; &nbsp; {&nbsp; &nbsp; &nbsp; &nbsp; dictionary.Add(c, 1);&nbsp; &nbsp; }}
随时随地看视频慕课网APP
我要回答