C# CollectionProperties上的filter为我提供了全部4条记录,而不是2条
我有一个列表C# CollectionProperties上的filter为我提供了全部4条记录,而不是2条,c#,C#,我有一个列表lstcollectionstances,其中有4个收集实例 var lstCollectionInstances = new List<CollectionInstance> { new CollectionInstance { Name = "A", CollectionProperties = new List<CollectionP
lstcollectionstances
,其中有4个收集实例
var lstCollectionInstances = new List<CollectionInstance>
{
new CollectionInstance
{
Name = "A",
CollectionProperties = new List<CollectionProperty>
{
new CollectionProperty {Name = "P1", Value = 10, DataType = "D"}
}
},
new CollectionInstance
{
Name = "A",
CollectionProperties = new List<CollectionProperty>
{
new CollectionProperty {Name = "P2", Value = "H1", DataType = "S"}
}
},
new CollectionInstance
{
Name = "B",
CollectionProperties = new List<CollectionProperty>
{
new CollectionProperty {Name = "P1", Value = 20, DataType = "D"}
}
},
new CollectionInstance
{
Name = "B",
CollectionProperties = new List<CollectionProperty>
{
new CollectionProperty {Name = "P2", Value = "H2", DataType = "S"}
}
},
};
这是因为您正在执行
lstcollectionstances
的每个项目中的Select
,以及CollectionProperties
中的何处。它将返回4个项目,其中2个项目的集合属性为空。您应该首先执行Where
,如下所示:
var X = lstCollectionInstances.Where(a => a.CollectionProperties.Any(cp => cp.DataType == "D")).Select(x => new CollectionInstance
{
Name = x.Name,
CollectionProperties = x.CollectionProperties
}).ToList();
这是因为您正在执行
lstcollectionstances
的每个项目中的Select
,以及CollectionProperties
中的何处。它将返回4个项目,其中2个项目的集合属性为空。您应该首先执行Where
,如下所示:
var X = lstCollectionInstances.Where(a => a.CollectionProperties.Any(cp => cp.DataType == "D")).Select(x => new CollectionInstance
{
Name = x.Name,
CollectionProperties = x.CollectionProperties
}).ToList();
此选项选择具有类型为D的属性的所有实例
var result= lstCollectionInstances
.Where(x => x.CollectionProperties.Any(y => y.DataType == "D"))
.ToList();
此选项选择具有类型为D的属性的所有实例
var result= lstCollectionInstances
.Where(x => x.CollectionProperties.Any(y => y.DataType == "D"))
.ToList();
CollectionProperty类中的值属性类型是什么?在第一项和第三项中设置int类型(10和20),在第二项和第四项字符串类型(“H1”和“H2”)中设置对象类型CollectionProperty类的值属性类型是什么?在第一项和第三项中设置int类型(10和20),在第二项和第四项字符串类型(“H1”和“H2”)中设置对象类型