C#.NET 3.5 - 对列表成员执行类似操作的列表

时间:2009-01-24 04:45:15

标签: c# list

我有一个字段对象,我创建了一个字段列表:

class Field {

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

//constructor...

}



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

假设我想查询此列表以返回不同对象名称的集合(然后将其插入到checkedlistbox中。我将如何进行此操作?

我想一些LINQ魔术可以管理这个?

3 个答案:

答案 0 :(得分:2)

表达式应该按照定义从列表中返回不同对象名称的List。我将它转换为列表,因为CheckedListBox DataSource属性的文档表明它需要实现IList或IListSource,而不仅仅是IEnumerable。

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

如果以ListControl访问checkedListBox不能访问DataSource(有时是docs谎言),您可以尝试:

cbListBox.Items.AddRange( fieldList.Select( f => f.objectName )
                                   .Distinct()
                                   .ToArray() );

答案 1 :(得分:0)

var q = from Field f in fileldList select f.objectName;

chkBoxList.DataSource = q.Distinct();

答案 2 :(得分:0)

其中任何一项工作

使用var

1)var fieldNameCollection = from field in fieldList select f.FieldName; 2)Lambda语法 var fieldNameCollection = fieldList.Select(f =&gt; f.FieldName);

或者,您也可以使用,而不是使用var IEnumerable fieldNameCollection = fieldList.Select(f =&gt; f.FieldName);