Ответ 1
Вы хотите использовать метод расширения SelectMany
.
_tables.SelectMany(t => t.Indexes)
В настоящее время я работаю над кривой обучения, которая является LINQ, и я действительно могу использовать некоторую помощь. Я не знаю, возможно ли то, что я хочу, но если мне пришлось делать ставки, я уверен, что это так.
В настоящее время у меня есть список объектов, называемых _tables, и каждый из этих объектов имеет в нем еще один список объектов, открытых через свойство "Индексы". По сути, я хотел бы получить один Список, содержащий все индексы из всех _tables.
Вот что я до сих пор:
var indexes = from TableInfo tab
in _tables
where tab.Indexes.Count > 0
select tab.Indexes;
К сожалению, это, похоже, дает мне еще один список списков, но только там, где список индексов содержит более одного значения... Есть ли способ собрать все эти списки без циклов?
Вы хотите использовать метод расширения SelectMany
.
_tables.SelectMany(t => t.Indexes)
В дополнение к ответу tbischel, версия выражения запроса, для которой вы собираетесь, ниже.
var indexes = from TableInfo tab in _tables
from index in tab.Indexes
select index;
Вам не нужно предложение where, и вам также не нужно указывать, какая вкладка
И вам нужно будет использовать SelectMany
var indexes = (from tab in _tables).SelectMany(t => t.Indexes)
Или вы могли бы сделать это, как это
var indexes = from tab in _tables
from t in tab.Indexes
select t;
Это должен быть немного более знакомый синтаз
var rows = from item in table select item;