Làm thế nào để lặp qua một bộ sưu tập hỗ trợ IEnumerable?
Câu trả lời:
Một thường xuyên cho mỗi sẽ làm:
foreach (var item in collection)
{
// do your stuff
}
Cùng với các phương pháp sử dụng foreach
vòng lặp đã được đề xuất , tôi nghĩ rằng tôi cũng muốn đề cập rằng bất kỳ đối tượng nào triển khai IEnumerable
cũng cung cấp một IEnumerator
giao diện thông qua GetEnumerator
phương thức. Mặc dù phương pháp này thường không cần thiết, nhưng phương pháp này có thể được sử dụng để lặp lại thủ công qua các tập hợp và đặc biệt hữu ích khi viết các phương thức mở rộng của riêng bạn cho các tập hợp.
IEnumerable<T> mySequence;
using (var sequenceEnum = mySequence.GetEnumerator())
{
while (sequenceEnum.MoveNext())
{
// Do something with sequenceEnum.Current.
}
}
Một ví dụ chính là khi bạn muốn lặp lại đồng thời hai chuỗi , điều này không thể thực hiện được với một foreach
vòng lặp.
hoặc thậm chí là một phương pháp cổ điển rất cổ điển
IEnumerable<string> collection = new List<string>() { "a", "b", "c" };
for(int i = 0; i < collection.Count(); i++)
{
string str1 = collection.ElementAt(i);
// do your stuff
}
có thể bạn cũng muốn phương pháp này :-)
foreach (var element in instanceOfAClassThatImplelemntIEnumerable)
{
}
Có thể bạn đã quên việc chờ đợi trước khi trả lại bộ sưu tập của mình