Tiếp tục với (đúng) câu trả lời LINQ dựa trên ...
Nếu bạn không muốn sử dụng LINQ, bạn có thể phát minh ra một lớp ChainedEnumerable, sử dụng năng suất:
public class ChainedEnumerable<T> : IEnumerable<T>
{
private readonly IEnumerable<T>[] _inners;
public ChainedEnumerable(params IEnumerable<T>[] inners)
{
_inners = inners;
}
public IEnumerator<T> GetEnumerator()
{
foreach (IEnumerable<T> inner in _inners)
{
foreach (T t in inner)
{
yield return t;
}
}
}
IEnumerator IEnumerable.GetEnumerator()
{
return GetEnumerator();
}
}
sử dụng nó như thế này:
List<string> a = new List<string> { "A1", "A2", "A3" };
List<string> b = new List<string> { "B1", "B2", "B3" };
ChainedEnumerable<string> chainedEnumerable =
new ChainedEnumerable<string>(a, b);
foreach (string s in chainedEnumerable)
Console.WriteLine(s);
Nguồn
2009-02-08 18:34:54
+1 Đây là một giải pháp tốt và gọn gàng. Tôi tin rằng tôi sẽ kết hợp nó vào công cụ của tôi! –