"System.ArgumentOutOfRangeException", почему это показывает? И почему список <> номер перестает печатать? - PullRequest
2 голосов
/ 02 апреля 2020

Когда я его выполняю, печать останавливается на 8 и показывает мне

"System.ArgumentOutOfRangeException"

List<int> number = new List<int> { 1, 2, 2, 5, 4, 8, 6};
number.ForEach(delegate (int i) { Console.WriteLine(number[i]); });
Console.ReadKey();

Ответы [ 2 ]

3 голосов
/ 02 апреля 2020

Как уже упоминалось @tkausl, ForEach передает вам значение, а не индекс , на самом деле не рекомендуется использовать List.ForEach, но если вы все еще хотите его использовать, вы можете сделать что-то вроде this:

 number.ForEach(c => { Console.WriteLine(c); });

Вы можете просто использовать foreach, например так:

foreach (var c in number)
{
   Console.WriteLine(c);
}

Вы можете найти обсуждение здесь: foreach vs someList.ForEach () {}

3 голосов
/ 02 апреля 2020

Вы можете использовать это foreach, он никогда не ошибется

List<int> number = new List<int> { 1, 2, 2, 5, 4, 8, 6 };
foreach (var item in number)
{
    Console.WriteLine(item);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...