c#-从另一个列表中过滤列表对象
作者:互联网
我的C#.NET 3.5 Win Forms应用程序中有以下类:
class Field {
string objectName;
string objectType;
string fieldName;
string fieldValue;
}
以及一个list fieldList,它是一个checkedlistbox的数据源.此列表框显示了我的fieldList集合中的所有不同的objectName.
我想创建另一个包含fieldNames的清单列表框,但只在第一个列表框中显示具有关联的已选中objectName的域名称.
因此,我的问题是如何查询原始objectNames列表的DataSource以返回与所选objectName相关的唯一的fieldNames集?
这不是很容易阅读,所以我举一个例子:
Field1 {
objectName = 'objA'
FieldName = 'FieldA'
}
Field2 {
objectName = 'objA'
FieldName = 'FieldB'
}
Field3 {
objectName = 'objB'
FieldName = 'FieldA'
}
Field4 {
objectName = 'objC'
FieldName = 'FieldC'
}
因此,假设我在复选框中选择了objectNames objA和objB.然后,我返回的字段将是“ FieldA”和“ FieldB”.
如何使用LINQ或过滤我的通用字段列表来实现此目的?我可以利用列表可用的“选择”或“在哪里”方法吗?
解决方法:
var selectedNames = ... // List of selected names
var selectedFields = (from f in fieldList
where selectedNames.Contains(f.objectName)
select f.FieldName).Distinct().ToList();
标签:checkedlistbox,generics,c 来源: https://codeday.me/bug/20191210/2103671.html