2012-12-19 26 views
7

X türünde bir liste yaşıyorum X, bir özellik düzeyi sınıfıdır. Artık bir olayda CheckedListBox Seçilen Öğeleri başka bir listeye ihtiyacım var.CheckedListBox Seçilen Öğeleri Listeye Nasıl Alınır <X> ...?

Çıktı nasıl alınır? i aşağıda verilmiştir çalıştı kodu ...

public void Initialize(List<X> x1) 
{ 
     chkList.DataSource = x1; 
     chkList.DisplayMember = "MeterName"; // MeterName is a property in Class X 
     chkList.ValueMember = "PortNum"; // PortNum is a property in Class X 
} 

private void Click_Event(object sender, EventArgs e) 
{ 

List<X> x2 = new List<X>(); 
// Here I want to get the checkedListBox selected items in x2; 
// How to get it...??? 

} 
+0

web projesidir? windows uygulaması? –

+0

Windows uygulama arkadaşı ... –

+0

Olası kopyası [Bir Öğe Koleksiyonunu bir liste kutusundan genel listeye dökme] (http://stackoverflow.com/questions/471595/casting-an-item-collection-from-a-listbox -to-a-jenerik-liste) –

cevap

15

aşağıdaki

List<X> x2 = chkList.CheckedItems.OfType<X>().ToList(); 

veya i cevabı var

List<object> x2 = chkList.CheckedItems.OfType<object>().ToList(); 
+0

+ 1 bu iyi çalışıyor, foreach tabanlı cevap eklemek için bir neden göremiyorum :) –

+0

aslında ben yukarıdaki çözüm işe yaramaz bu yüzden DevExpress kullanıyorum. Ama bu benim çözümümüzü almak için bir kıvılcım verdi ... tanx dostum .. –

+0

@RavishankarN bu çalışmayı elde etmek için OfType yerine 'Cast 'kullanabilirsiniz. – nawfal

0

nesne olarak döküm deneyebilirsiniz

private void Click_Event(object sender, EventArgs e) 
{ 

List<X> x2 = new List<X>(); 
foreach (X item in chkList.CheckedItems) 
    { 
     x2.Add(item); 
    } 
} 
0

İşte bunun için çalışan bir yöntem Beni r:

List<X> x2 = new List<X>(); 
x2 = chkList.CheckedItems.Cast<X>().ToList(); 
0
string[] miList = chkList.CheckedItems.OfType<object>().Select(li => li.ToString()).ToArray(); 
0

Bu, başka bir seçenek

List<X> lst = new List<X>(chkList.CheckedItems.Cast<X>()); 
İlgili konular