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

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

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

Колллеги, может кто подскажет в чем проблема: Есть код:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
 
namespace ConsoleApp1
{
    class Program
    {
        public class Boundary
        {
            public List<int[]> iPlate = new List<int[]>();
        }

        static void Main(string[] args)
        {
 
            Boundary CONV = new Boundary();
            int[] bcnode1 = new int[2];
 
            for (int i = 0; i < 100; ++i)
            {
                
                bcnode1[0] = i;
                bcnode1[1] = 100 - i;
 
                CONV.iPlate.Add(bcnode1);
 
            }
 
        }
    }
}
При объявлении массива bcnode1 вне цикла, при добавлении элемента в LIST, все элементы LIST заменяются последним значением массива. во всем листе. Если внести объявление в цикл проблема исчезает.

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

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

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


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

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

9   голосов , оценка 3.778 из 5
Похожие ответы