System.ArgumentOutOfRangeException: 'Индекс был вне диапазона. копировать из одного списка в другой - PullRequest
0 голосов
/ 05 октября 2019

Я собрал следующую программу, но получаю ошибку вне диапазона. В основном я хотел бы скопировать значения из одного списка в другой (от a до b):

List<int> a = new List<int> { 99, 2, 3, 4, 5, 6 };
List<int> b = new List<int>(6);

for ( int i = 0; i < a.ToArray().Length; i++ )
{
  a[i].ToString().Insert(0, b[i].ToString());
}

for ( int i = 0; i < a.ToArray().Length; i++ )
{
  Console.WriteLine(b[i]);
}

Console.ReadKey();

Ответы [ 3 ]

1 голос
/ 05 октября 2019

Просто скопируйте значения из первого списка во второй список, вызвав ToList() в первом списке:

List<int> uzytkownik = new List<int>() { 99, 2, 3, 4, 5, 6 };

List<int> uzytkownik1 = uzytkownik.ToList();//only values are copied, not the reference to the first list

for (int i = 0; i < uzytkownik1.Count; i++)
{
    Console.WriteLine(uzytkownik1[i]);
}

Console.ReadKey();

Если вам нужно использовать цикл for, то:

List<int> uzytkownik = new List<int>() { 99, 2, 3, 4, 5, 6 };

List<int> uzytkownik1 = new List<int>();

for (int i = 0; i < uzytkownik.Count; i++)
{
    uzytkownik1.Add(uzytkownik[i]);
}

for (int i = 0; i < uzytkownik1.Count; i++)
{
    Console.WriteLine(uzytkownik1[i]);
}

Console.ReadKey();
0 голосов
/ 05 октября 2019

У List<T> уже есть метод для такой работы. List<T>.AddRange(IEnumerable<T>)

List<int> a = new List<int> { 99, 2, 3, 4, 5, 6 };
List<int> b = new List<int>(6);

b.AddRange( a );

. Пример скрипта .net

0 голосов
/ 05 октября 2019
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...