Về cơ bản, tôi muốn xóa một mục khỏi danh sách trong khi đang ở trong vòng lặp foreach. Tôi biết rằng điều này là có thể khi sử dụng một vòng lặp for, nhưng cho các mục đích khác, tôi muốn biết nếu điều này là đạt được bằng cách sử dụng một vòng lặp foreach.Sửa đổi bộ sưu tập khi sử dụng vòng lặp foreach trong C#
Trong python chúng ta có thể đạt được điều này bằng cách làm như sau:
a = [1, 2, 3, 4, 5, 6, 7, 8, 9]
for i in a:
print i
if i == 1:
a.pop(1)
này cung cấp cho các đầu ra sau
>>>1
3
4
5
6
7
8
9
Nhưng khi làm một cái gì đó tương tự trong C#, tôi nhận được một InvalidOperationException, tôi đã tự hỏi nếu có một cách để giải quyết vấn đề này, hãy mà không cần chỉ đơn giản là sử dụng vòng lặp for.
Mã trong C# mà tôi sử dụng khi các ngoại lệ được ném:
static void Main(string[] args)
{
List<string> MyList = new List<string>(new string[] { "1", "2", "3", "4", "5", "6", "7", "8", "9"});
foreach (string Item in MyList)
{
if (MyList.IndexOf(Item) == 0)
{
MyList.RemoveAt(1);
}
Console.WriteLine(Item);
}
}
Cảm ơn trước
Tôi chủ yếu tự hỏi nếu tôi đã bỏ lỡ một cái gì đó ở đâu đó với cá thể foreach, nhưng nếu nó không thể đạt được, ít nhất nó bây giờ đã được xác nhận! Cảm ơn vì câu trả lời – ThePower