List.Add() добавляет один и тот же массив - C#
Формулировка задачи:
Колллеги, может кто подскажет в чем проблема:
Есть код:
При объявлении массива bcnode1 вне цикла, при добавлении элемента в LIST, все элементы LIST заменяются последним значением массива. во всем листе. Если внести объявление в цикл проблема исчезает.
Листинг программы
- 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);
- }
- }
- }
- }
Решение задачи: «List.Add() добавляет один и тот же массив»
textual
Листинг программы
- CONV.iPlate.Add(bcnode1.Clone() as int[]);
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д