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