इसके अलावा LINQ आधारित जवाब (सही) को
...
आप LINQ का उपयोग नहीं करना चाहते हैं, यदि आप एक ChainedEnumerable वर्ग का आविष्कार कर सकते हैं, उपज का उपयोग कर:
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();
}
}
इस तरह यह प्रयोग करें:
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);
स्रोत
2009-02-08 18:34:54
+1 यह एक अच्छा और साफ समाधान है। मेरा मानना है कि मैं इसे अपनी सामग्री में शामिल कर दूंगा! –