我对int []数组有疑问。 我对EmailIndex词典有以下定义:
Dictionary<string, int[]> EmailIndex = new Dictionary<string, int[]>();
当字典的int []数组中的成员很少时,TryGetValue将数组返回到int [] arr中,并且我的方法可以正常工作。但是,当我使用数组中的大约1800个成员对其进行测试时,它返回null。我检查了在方法中使用的EmailIndex词典的实例,它具有所有值。
这是代码
private void SearchByEmail(string email)
{
try
{
int[] arr;
EmailIndex.TryGetValue(email, out arr);
foreach (int entry in arr)
{
string fileName = @"C:\Admin\Q\chunkUsers" + entry.ToString() + ".csv";
var search = File.ReadLines(fileName)
.Where(line =>
{
line = line.Trim();
return line.Contains(email);
});
foreach (string line in search)
{
Console.WriteLine(line);
}
}
Console.ReadLine();
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
}
当数组很小时,行为是不同的。 TryGetValue返回true。当数组增长时,TryGetValue返回false。
UPD:TryGetValue没有问题。我传递给方法的\"
中的结尾email
出现问题