【发布时间】:2014-10-04 23:20:30
【问题描述】:
所以我有一个对象列表,我们称它们为大象。
每个大象对象都有一个名为 ClonedFrom 的属性。这是 Elephant 类型,用于指向在图像中创建此新对象的对象。
Elephant 类还有一个名为 HasTrunk 的属性,它的类型为 bool。
所以:
public class Elephant
{
public Elephant ClonedFrom { get; set; }
public bool HasTrunk { get; set; }
}
我们有
List<Elephant> herd
我想要一个 LINQ 查询,该查询将返回具有 false HasTrunk 属性但 ClonedFrom 属性值等于同一列表中 HasTrunk 属性设置为 true 的另一个 Elephant 的任何大象。
例如,克隆大象 A 以创建新的大象 B 和 C
B 和 C 都存在于 herd List 中,并且都具有相同的 ClonedFrom 属性值 (A)。 B 将 HasTrunk 设置为 false,而 C 将 hasTrunk 设置为 true。
我想要一个返回 B 的查询。
(注意:A 是否在列表中并不重要)
【问题讨论】:
-
herd.Where(elephant => !elephant.HasTrunk && herd.Where(elephant2 => elephant2.HasTrunk).Contains(elephant2 => elephant2.ClonedFrom == elephant.ClonedFrom));这是你的意思吗? -
@Ofris 不会为我编译
-
如果将
Contains更改为Any会怎样? -
@Ofris 现在可以编译,但对于我上面概述的测试示例,它没有返回任何内容