2010-11-23 11 views
38

' I aşağıdaki kodu vardır:örtülü tip dönüştürülemez 'System.Collections.Generic.IEnumerable <AnonymousType 1.>' System.Collections.Generic.List <string>

hakkında

List<string> aa = (from char c in source 
        select new { Data = c.ToString() }).ToList(); 

Ama ne

List<string> aa = (from char c1 in source 
        from char c2 in source 
        select new { Data = string.Concat(c1, ".", c2)).ToList<string>(); 

iken

dolaylıtürünü 'System.Collections.Generic.List<AnonymousType#1>' dönüştürülemez

derleme alma hatası

yardıma ihtiyacınız. Eğer List<string> olmasını istiyorsanız anonim tip kurtulmak,

List<string> l = (from char c in source 
        select new { Data = c.ToString() }).Select(t = > t.Data).ToList(); 
// or 
List<string> l = (from char c in source 
        select c.ToString()).ToList(); 
// or 
List<string> l = source.Select(c = > c.ToString()).ToList(); 
+0

Son görev nedir ve kaynak nedir? – abatishchev

+0

Son düzenlemenizde aynı kaynaktan iki kez bahsediliyorsa, cevabım 2'ye bakın - size yardımcı olabilir. – abatishchev

cevap

47
IEnumerable<string> e = (from char c in source 
         select new { Data = c.ToString() }).Select(t = > t.Data); 
// or 
IEnumerable<string> e = from char c in source 
         select c.ToString(); 
// or 
IEnumerable<string> e = source.Select(c = > c.ToString()); 

deneyin :

Eğer "abcd" gibi bir dize olarak kaynağına sahip ve böyle bir liste üretmek istiyorsanız
List<string> list = (from char c in source 
        select c.ToString()).ToList(); 
+0

: Sen kullanmalıdır 'seç (x => x.Data) .ToList()' tür verilerin listesini seçmek için. –

+2

hakkında nasıl daha abatishchev

2

Sonra ToList() çağırabilir

var lst= (from char c in source select c.ToString()).ToList(); 
+0

Var kullanamıyorum .. –

+0

nedenlerinden dolayı Liste olması gerekiyor. Bu yolla, 'List ' – abatishchev

+0

@Rover: no, yapmaz .ToList(), IEnumerable listesine priyanka.sarkar_2 @ bu –

11

ve .ToList() çağrıyı ekleyin:

+1

List aa = hakkında (kaynaktaki char c1 kaynağından kaynağından gelen cc kaynağı yeni seçin {Data = string.Concat (c1, ".", C2)) ToList (); –

2

:

{ "a.a" }, 
{ "b.b" }, 
{ "c.c" }, 
{ "d.d" } 

sonra çağrı:

List<string> list = source.Select(c => String.Concat(c, ".", c)).ToList(); 
1

Ben cevaplar

List<string> aa = (from char c in source 
        select c.ToString()).ToList(); 

List<string> aa2 = (from char c1 in source 
        from char c2 in source 
        select string.Concat(c1, ".", c2)).ToList(); 
altında olduğunu düşünüyorum
İlgili konular