Tanzim Saqib on .NET discovery

October 13, 2007

LINQ: Iterate through collection which implements IEnumerable only

Filed under: LINQ — Tanzim Saqib @ 4:17 pm

The following works fine in LINQ, because an array implements IEnumerable <T>.

string[] tokenArray = new string[2] { “Hello”, “World” };
var tokens = from token in tokenList select token;              

foreach (var item in tokens)
    Console.WriteLine(item);

But, the collections which do not implement IEnumerable<T> or IQueryable, can not be iterated in LINQ in the same way. To achieve the same, make use of a simple casting trick such as:

ArrayList tokenList = new ArrayList();
tokenList.Add(“Hello”);
tokenList.Add(“World”);              

var tokens = from string token in tokenList select token;              

foreach (var item in tokens)
    Console.WriteLine(item);

Powered by WordPress