首页 > 解决方案 > 如何使用 LINQ 检索列表中包含列表特定属性的条目?

问题描述

我有一个IJapaneseDictionaryEntry对象列表,如下所述。在 this 内部是IKanji包含对象的Priorites对象。

我有一件相当困难的事情想做,并希望得到任何建议/建议。我想做的是 从我创建Priority的列表中检索具有“Frequency3”条目的条目。entries

public interface IJapaneseDictionaryEntry
{
    int Sequence { get; }
    IEnumerable<IKanji> Kanjis { get; }
    IEnumerable<IReading> Readings { get; }
    IEnumerable<ISense> Senses { get; }
}

每个对象都包含一个对象IKanji列表

public interface IKanji
{
    string Text { get; }
    IEnumerable<KanjiInformation> Informations { get; }
    IEnumerable<Priority> Priorities { get; }
}

这是列表:

List<IJapaneseDictionaryEntry> entries = dictionary.GetEntries().ToList();

这是我认为可能有助于解释内容的视图:

在此处输入图像描述

我希望这里的信息足够,因为似乎很难解释我需要检索的内容。

标签: c#linq

解决方案


这将返回至少具有 1Kanjis且其优先级包含 Frequency3 的任何条目:

var result = entries.Where(e => e.Kanjis.Any(k => k.Priorities.Contains(Priority.Frequency3))).ToList();

推荐阅读