В моей программе есть следующий цикл foreach:
Dictionary<string, int[]> summaryDate_clipsEpisodesImps = new Dictionary<string, int[]>();
Dictionary<string, int[]> summaryPartner_clipsEpisodesImps = new Dictionary<string, int[]>();
foreach (DataRow row1 in dt10.Rows)
{
int[] numbers = new int[3];
numbers[0] = 0;
numbers[1] = 0;
numbers[2] = 0;
if (!dictionary1.ContainsKey(row1["value1"].ToString().Trim()))
{
dictionary1.Add(row1["value1"].ToString().Trim(), numbers);
}
if (!dictionary2.ContainsKey(row1["value2"].ToString().Trim()))
{
dictionary2.Add(row1["value2"].ToString().Trim(), numbers);
}
if (row1["yes_or_no"].ToString().Trim() == "yes")
{
dictionary1[row1["value1"].ToString().Trim()][0] = dictionary1[row1["value1"].ToString().Trim()][0] + Convert.ToInt32(row1["a_number"]);
dictionary2[row1["value2"].ToString().Trim()][0] = dictionary2[row1["value2"].ToString().Trim()][0] + Convert.ToInt32(row1["a_number"]);
}
}
По сути, я перебираю таблицу данных и создаю словарь массивов строк / int на основе значений, которые я нахожу в каждой записи. Затем я пытаюсь увеличить первое значение в массиве на основе наличия другого поля в записи.
Моя проблема возникает в операторе if, когда я проверяю значение yes_or_no. Когда в этом выражении присутствует словарь2 с увеличением второй строки, значение в словаре 1 увеличивается на то же значение. Я понятия не имею, почему это так.
Пожалуйста, дайте мне знать, если это не совсем понятно. Заранее спасибо за помощь.