我有一个包含一些数字的字符串List。 我在mybuylist中有一些字符串在Dictionary列表中匹配。但是这个if条件总是返回False。好的mybuylist就像[34,45,58]和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
}
}
希望有人帮我解决这个问题
答案 0 :(得分:0)
可能是区分大小写的比较或键不匹配的问题。默认情况下,所有词典均为case-sensitive
。 A
和a
不同。验证mybuylist
和mcollection
中的值是否相同。
如下所示声明mcollection
。
public static Dictionary<string, int> mcollection = new Dictionary<string, int>(StringComparer.OrdinalIgnoreCase);
这将忽略A
&amp; a
是一样的。
请参阅this。
编辑1 :
class Program
{
public static Dictionary<string, int> mcollection = new Dictionary<string, int>() { { "565", 5 }, { "34", 1 }, { "78", 9 } };
public static List<string> mybuylist = new List<string>() { "34", "45", "58" };
static void Main(string[] args)
{
foreach (string entry in mybuylist)
{
if (mcollection.ContainsKey(entry))
{
Console.WriteLine(entry);
//dosomething
}
}
}
}
O/P: 34
编辑2 :使用以下代码删除空格
mybuylist = mybuylist.ConvertAll(s => s.Trim());