Linq包含 - 不适用于子对象

时间:2018-06-11 21:40:51

标签: c# linq

我需要选择具有特定标记的所有地方,然后迭代它们:

public class Place {
    public int Id { get; set; }
    public string PlaceName { get; set; }

    public IEnumerable<Tag> Tags { get; set; }
}

public class Tag {
    public int Id { get; set; }
    public string TagName { get; set; }
}

每个地方都可以有多个标签。每个标签都可以属于多个位置。

在Linq中 - 我需要选择所有具有特定标记的地方 - 例如此标记:

var Bar = new Tag {
    Id = 1,
    TagName = "Bar"
}

我试过这个:

foreach (var Bar in Model.Places.Where(x => x.Tags.Contains(Bar)))

但foreach永远不会被迭代 - Contains什么都不返回(许多地方的标签集合中都有一个Bar对象)

我发现了 - 似乎说我的方法应该有用吗?

Linq to Select Parent Objects Where Child Objects Have a Matching Child Object

这应该有用吗?我错过了什么吗?有没有更好的方法呢?

感谢。

0 个答案:

没有答案