Son*_*Boy 19 .net c# linq list
我正在努力学习LINQ的学习曲线,我真的可以使用一些帮助.我不知道我想要的是否可能,但如果我不得不下注,我敢打赌.
我目前有一个名为_tables的对象列表,其中每个对象都有一个通过属性"索引"公开的另一个对象列表.基本上,我想最终得到一个List,其中包含来自所有_tables的所有索引.
这是我到目前为止所拥有的:
var indexes = from TableInfo tab
in _tables
where tab.Indexes.Count > 0
select tab.Indexes;
Run Code Online (Sandbox Code Playgroud)
不幸的是,这似乎给了我另一个列表列表,但只有索引列表包含多个值...有没有办法让所有这些列表一起没有循环?
tbi*_*hel 39
您想使用SelectMany
扩展方法.
_tables.SelectMany(t => t.Indexes)
Run Code Online (Sandbox Code Playgroud)
除了tbischel的答案之外,您要查找的查询表达式版本如下.
var indexes = from TableInfo tab in _tables
from index in tab.Indexes
select index;
Run Code Online (Sandbox Code Playgroud)
您不需要where子句,也不需要告诉它什么选项卡是
而且您将需要使用SelectMany
var indexes = (from tab in _tables).SelectMany(t => t.Indexes)
Run Code Online (Sandbox Code Playgroud)
或者你可以这样做
var indexes = from tab in _tables
from t in tab.Indexes
select t;
Run Code Online (Sandbox Code Playgroud)
那应该是更熟悉的句法