2010-07-15 49 views
6

Ben bir onay kutusu listeleri inşa ediyorum ben errror olsunDöngü

List<Guid> things = new List<Guid>(); 
foreach (ListItem item in this.CheckBoxes.Items) 
{ 
    if (item.Selected) 
     things.Add(item.Value); 
    } 
} 

" 'System.Collections.Generic.List.Add (System.Guid)' için en iyi aşırı yüklenmiş yöntem eşleştirmesi bazı geçersiz argu var ments "

+0

, sen şey listeye bu aynı öğe eklemek istiyorum:

bu deneyin. Yapmaya çalıştığın bu mu? – jdecuyper

+0

doğrudur – Neil

cevap

9

'Şey' listesi bir Guid değeri dışındadır. Bir Guid değerine item.value dönüştürmek olmalıdır:

List<Guid> things = new List<Guid>(); 
foreach (ListItem item in this.CheckBoxes.Items) 
{ 
    if (item.Selected) 
    things.Add(new Guid(item.Value)); 
} 
5

ListItem.Value tip System.String ait olduğunu ve bir List<Guid> eklemek için çalışıyoruz. Sen deneyebilirsiniz: dize değeri sürece çalışacaktır

things.Add(Guid.Parse(item.Value)); 

bir Guid için çözümlenebilir olduğunu. Bu net değilse, daha dikkatli olmak ve Guid.TryParse(item.Value)'u kullanmak isteyeceksiniz.

0

GUID en (hata mesajı), ancak kabul etmez sizin List Add yöntemi "item.value" kabul etmiyor, o zaman öğeyi tahmin ediyorum .value bir GUID değildir. Listeden bir öğe seçilirse

... 
things.Add(CTYPE(item.value, GUID)) 
...