2011-04-20 23 views
5

Enum'dan SelectList oluşturmaya çalışıyorum.Dizi sınıfında Linq uzantısını kullanma

Neden Linq uzantı yöntemleri Array?

var values = Enum.GetValues(typeof(MyEnum)); 
var test = values.Select(x => x); // compile error 

Ama bu şekilde yazabilir ve derler ...

var test = from Enum e in values select new { e }; 

Normalde 'bu yüzden onunla gerçekten aşina değilim sözdizimi bu stili kullanın, ancak değil mi yok Yukarıdaki temelde derleme olmayan lambda sorgusuyla aynı mıdır?

cevap

8

Kullanım OfType yöntem LINQ kullanılarak sorgulanabilir bir IEnumerable<T> almak için:

var values = Enum.GetValues(typeof(MyEnum)); 
var test = values.OfType<int>().Select(x => x);