当value为大int []时,TryGetValue方法返回null

时间:2018-10-28 18:52:41

标签: c# dictionary

我对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出现问题

0 个答案:

没有答案