c# - 我可以使用 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);
解决方案
我不太确定我是否正确理解了您的意思,但我认为这就是您要寻找的:
var result = jmdict.SelectMany(entry => entry.Kanjis.Select(k => (entry.Sequence, k.Text)));
推荐阅读
- c++ - 发生异常:跟踪/断点陷阱 - 在 VSCode 中调试 C++ 程序(使用动态内存分配)
- c - 交换结构数组元素
- python - 覆盖 Django 模型字段 get_prep_value 方法
- powerbi - 在 DAX (Power BI) 中计算盈利能力
- python - 有没有办法让流线型用户输入自动格式化为货币(包括逗号、美元符号)?
- ios - firestore 不接受我的视频 url 上传到存储 Xcode/iOS
- discord - 如何使不和谐机器人自动发送消息?
- node.js - Express 没有收到 POST 数据
- javascript - BEGINNER JavaScript 我需要一些帮助来计算不同行的函数
- java - JavaFX倒计时使用时间轴并显示为标签