Я подсчитываю появление каждого элемента в массиве, но получаю ошибку «Значение не может быть null». Это не имеет для меня смысла, потому что arr1 полностью заполнен без нулевых значений, за исключением последних 5 элементы, которые являются нулевыми.Подсчет событий в массиве
Вот мой код. Я использую словарь впервые, поэтому у меня может быть некоторая логическая ошибка. Я читаю из текстового файла.
string[] arr1 = new string[200];
StreamReader sr = new StreamReader("newWorkSheet.txt");
string Templine1 = "";
int counter = 0;
while (Templine1 != null)
{
Templine1 = sr.ReadLine();
arr1[counter] = Templine1;
counter += 1;
}
sr.Close();
// Dictionary, key is number from the list and the associated value is the number of times the key is found
Dictionary<string, int> occurrences = new Dictionary<string, int>();
// Loop test data
foreach (string value in arr1)
{
if (occurrences.ContainsKey(value)) // Check if we have found this key before
{
// Key exists. Add number of occurrences for this key by one
occurrences[value]++;
}
else
{
// This is a new key so add it. Number 1 indicates that this key has been found one time
occurrences.Add(value, 1);
}
}
// Dump result
System.IO.StreamWriter sr2 = new System.IO.StreamWriter("OrganizedVersion.txt");
foreach (string key in occurrences.Keys)
{
sr2.WriteLine("Integer " + key.ToString() + " was found " + occurrences[key].ToString() + " times");
}
sr2.Close();
Console.ReadLine();
Редактировать: Я разместил здесь весь код, включая объявление.
Показать объявление и инициализацию 'arr1' и' counter'. –