Добавление/проверка массива в коллекцию - C#
Формулировка задачи:
Доброго времени суток! Извиняюсь за два вопроса в одной теме, но мне кажется, что они очень похожи.
1) Почему проверка на наличие массива в коллекции говорит, что такого нет, хотя он там содержится?
2) Изменяя массив после добавления в коллекцию, он изменяется и в коллекции, почему так происходит?
И как эти ошибки исправить?
Console.WriteLine("------------------------");
List<int[]> newl = new List<int[]>();
int[] a = new int[3] { 7, 5, 3 };
int[] b = new int[4] { 1, 3, 6, 9 };
int[] c = new int[3] { 7, 5, 3 };
newl.Add(new int[a.Length]);
for (int i = 0; i < a.Length; i++)
newl[0][i] = a[i];
newl.Add(b);
if (newl.Contains(a))
Console.WriteLine("Содержит!");
else
Console.WriteLine("Не содержит!");
Console.WriteLine("------------------------");
b[0] = 1;
b[1] = 1;
b[2] = 1;
b[3] = 1;
foreach (int v in b)
Console.WriteLine(v);
for (int i = 0; i < newl[1].Length; i++)
Console.WriteLine(newl[1][i]);
Console.WriteLine("------------------------");Решение задачи: «Добавление/проверка массива в коллекцию»
textual
Листинг программы
int[] arr1 = {1,2,3,4,5};
int[] arr2 = {1,2,3,4,5};
Console.WriteLine(arr1 == arr2 ? "Равны", "Неравны"); // Неравны
arr2 = arr1;
Console.WriteLine(arr1 == arr2 ? "Равны", "Неравны"); // Равны