Hi là có một cách để làm những việc như thế này:sử dụng foreach để lặp đồng thời thông qua nhiều danh sách (cú pháp đường)
for (int i = 0; i < Math.Min(a.Count, b.Count); i++)
{
// Do stuff
//a[i]
//b[i]
}
với Foreach?
bởi vì nó sẽ được tốt đẹp để viết một cái gì đó giống như
foreach(var item1 in list1 and var item2 in list2 /* ....*/)
{
item1.use(item2);
}
EDIT
ok xin lỗi tôi đã không đủ rõ ràng cho một số người vì vậy đây là lời giải thích tốt hơn hy vọng
List<classA> listA = fillListA();
List<classB> listB = fillListB();
//here could be infinity many lists of sometimes diffrent T types
Bây giờ tôi muốn thực hiện một số loại ForEach vì tôi không thích làm điều đó với một số cho loop nó phải được đơn giản và rõ ràng cũng giống như
foreach(var item1 in list1 and var item2 in list2 /* and ...*/)
{
item1.use(item2);
}
AFAIK tôi không thể modifie như một từ Keay lớp điều vì vậy tôi nghĩ ok xây dựng iterator như Parallel.ForEach đã ForEach<TSource>(IEnumerable<TSource>, Action<TSource>)
nhưng tôi cô có được stucked vì tôi don 't biết làm thế nào thực hiện nó
Static.ForEach<TSource>(IEnumerable<TSource>,IEnumerable<TSource>, ???Action<TSource,???>????)
Câu trả lời của bạn có một số lợi thế nữa không? Câu trả lời của Ani? – WiiMaxx
@WiiMaxx bạn có thể mở rộng phương pháp này cho 3 danh sách trở lên (xem chỉnh sửa), nhưng nếu bạn chỉ cần nén 2 danh sách, chúng giống nhau - thực tế không có sự khác biệt về hiệu suất hoặc khả năng đọc. –
Điều gì sẽ xảy ra nếu một danh sách ngắn hơn một danh sách khác? Nó sẽ không dừng lại để lặp lại? – Kris