C# ContainsKey(条目)返回false

C# ContainsKey(条目)返回false,c#,C#,我有一个包含一些数字的字符串列表。 我在mybuylist中有一些字符串与字典列表中的匹配。但这个if条件总是返回False。好的,像[34,45,58]这样的mybuylist和像这样的mcollection(key,value){[565,5]},{[34,1]},{[78,9]} public static Dictionary<string, int> mcollection = new Dictionary<string, int>(); public stat

我有一个包含一些数字的字符串列表。 我在mybuylist中有一些字符串与字典列表中的匹配。但这个if条件总是返回False。好的,像[34,45,58]这样的mybuylist和像这样的mcollection(key,value){[565,5]},{[34,1]},{[78,9]}

public static Dictionary<string, int> mcollection = new Dictionary<string, int>();
public static List<string> mybuylist = new List<string>();

foreach (string entry in mybuylist) {

 if (mcollection.ContainsKey(entry))
    {
     //dosomething                     

    }

}
publicstaticdictionary mcollection=newdictionary();
公共静态列表mybuylist=新列表();
foreach(mybuylist中的字符串条目){
if(mcollection.ContainsKey(条目))
{
//剂量
}
}

希望有人能帮我解决这个问题

可能是区分大小写的比较问题或密钥不匹配。默认情况下,所有词典都区分大小写<代码>A和
A
是不同的。验证
mybuylist
mcollection
中的值是否相同

声明
mcollection
如下所示

public static Dictionary<string, int> mcollection = new Dictionary<string, int>(StringComparer.OrdinalIgnoreCase);
编辑2:使用下面的代码删除空格

mybuylist = mybuylist.ConvertAll(s => s.Trim());

显然,
mcollection
的键与
mylist
中的键不同。请向我们显示您的完整代码。。这意味着
mcollection
不包含任何键。@ErdemAlkan为什么不显示“mybuylist”和“mcollection”的内容在您的问题中,这样就足够清楚了??您的代码运行良好。问题在哪里?查看我的编辑帖子。你不知道原因是什么。实际上mybuylist中的所有项目都包含数字字符。@Yosi你是什么意思?你能解释一下吗?@PrasadKanaparthi-当然,如果你看到了“mybuylist”和“McCollection”的内容,那么你就会意识到这是否是区分大小写的比较问题,你看到了吗?谢谢。我发现了我的错误,我的sqlquery返回了类似“34”的列表项。我没有意识到列表项中有空格字符。格拉茨
mybuylist = mybuylist.ConvertAll(s => s.Trim());