我有一个字段对象,我创建了一个字段列表:
class Field {
string objectName;
string objectType;
string fieldName;
string fieldValue;
//constructor...
}
List<Field> fieldList = new List<Field>();
假设我想查询此列表以返回不同对象名称的集合(然后将其插入到checkedlistbox中。我将如何进行此操作?
我想一些LINQ魔术可以管理这个?
答案 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);