List.Add() добавляет один и тот же массив - C#

Узнай цену своей работы

Формулировка задачи:

Колллеги, может кто подскажет в чем проблема: Есть код:
Листинг программы
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Threading.Tasks;
  6. namespace ConsoleApp1
  7. {
  8. class Program
  9. {
  10. public class Boundary
  11. {
  12. public List<int[]> iPlate = new List<int[]>();
  13. }
  14.  
  15. static void Main(string[] args)
  16. {
  17. Boundary CONV = new Boundary();
  18. int[] bcnode1 = new int[2];
  19. for (int i = 0; i < 100; ++i)
  20. {
  21. bcnode1[0] = i;
  22. bcnode1[1] = 100 - i;
  23. CONV.iPlate.Add(bcnode1);
  24. }
  25. }
  26. }
  27. }
При объявлении массива bcnode1 вне цикла, при добавлении элемента в LIST, все элементы LIST заменяются последним значением массива. во всем листе. Если внести объявление в цикл проблема исчезает.

Решение задачи: «List.Add() добавляет один и тот же массив»

textual
Листинг программы
  1. CONV.iPlate.Add(bcnode1.Clone() as int[]);

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

9   голосов , оценка 3.778 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы