2009-01-24 73 views
1

我有一個字段對象的成員表演名單像操作和我創建字段列表:C#.NET 3.5 - 在列表

class Field { 

string objectName; 
string objectType; 
string fieldName; 
string fieldValue; 

//constructor... 

} 



List<Field> fieldList = new List<Field>(); 

假設我想查詢該列表返回的不同集合對象名稱(,然後被插入到checkedlistbox。我怎麼會去這樣做?

我想一些LINQ魔法可以管理這個?

+0

下載LINQpad,http://www.linqpad.net/。這是學習LINQ的簡單方法 – 2009-01-24 04:49:33

回答

2

表達應該返回distinc的列表t定義列表中的對象名稱。我將它轉換爲列表,因爲CheckedListBox DataSource屬性的文檔表明它需要實現IList或IListSource,而不僅僅是IEnumerable。

((ListControl)cbListBox).DataSource = fieldList.Select(f => f.objectName) 
               .Distinct() 
               .ToList()); 

如果訪問checkedListBox作爲一個列表控件不給訪問數據源(有時docs謊言),你可以嘗試:

cbListBox.Items.AddRange(fieldList.Select(f => f.objectName) 
            .Distinct() 
            .ToArray()); 
0
var q = from Field f in fileldList select f.objectName; 

chkBoxList.DataSource = q.Distinct(); 
0

無論這些工作

使用VAR

1)var fieldNameCollection = from fieldList中的f select f.FieldName; 2)Lambda語法 var fieldNameCollection = fieldList.Select(f => f.FieldName);您也可以使用 IEnumerable fieldNameCollection = fieldList.Select(f => f.FieldName);