为了账号安全,请及时绑定邮箱和手机立即绑定

键值对C#

键值对C#

C#
凤凰求蛊 2021-05-10 13:13:46
我试图弄清楚如何在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);

    }

}


查看完整回答
反对 回复 2021-05-21
  • 2 回答
  • 0 关注
  • 156 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信