首页 > 解决方案 > 我可以使用 LINQ 为我提供 LIST 中项目的非对象视图吗?

问题描述

我有这些对象:

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

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

我想做的是遍历列表IJapaneseDictionary 并获取Text所有Kanjis. 像这样的东西:

Seq  KanjiText
1    abc
1    def
2    ghi

我可以像这样遍历列表:

public static List<IJapaneseDictionaryEntry> jmdict;
foreach (var item in jmdict) 

我熟悉

var a = item.SelectMany(x => x.Kanjis)

但是我可以一个一个地获取汉字并使用 LINQ 为每个项目输出类似的内容,还是我需要为此设置另一个 foreach:

Console.WriteLine(seq);
Console.WriteLine(kanji); 

标签: c#linq

解决方案


我不太确定我是否正确理解了您的意思,但我认为这就是您要寻找的:

var result = jmdict.SelectMany(entry => entry.Kanjis.Select(k => (entry.Sequence, k.Text)));

推荐阅读