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);