Подтвердить что ты не робот

LINQ - Получить все элементы в списке в списке?

В настоящее время я работаю над кривой обучения, которая является LINQ, и я действительно могу использовать некоторую помощь. Я не знаю, возможно ли то, что я хочу, но если мне пришлось делать ставки, я уверен, что это так.

В настоящее время у меня есть список объектов, называемых _tables, и каждый из этих объектов имеет в нем еще один список объектов, открытых через свойство "Индексы". По сути, я хотел бы получить один Список, содержащий все индексы из всех _tables.

Вот что я до сих пор:

var indexes = from TableInfo tab
              in _tables
              where tab.Indexes.Count > 0
              select tab.Indexes;

К сожалению, это, похоже, дает мне еще один список списков, но только там, где список индексов содержит более одного значения... Есть ли способ собрать все эти списки без циклов?

4b9b3361

Ответ 1

Вы хотите использовать метод расширения SelectMany.

_tables.SelectMany(t => t.Indexes)

Ответ 2

В дополнение к ответу tbischel, версия выражения запроса, для которой вы собираетесь, ниже.

var indexes = from TableInfo tab in _tables 
              from index in tab.Indexes
              select index;

Ответ 3

Вам не нужно предложение 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;

Это должен быть немного более знакомый синтаз

Ответ 4

var rows = from item in table select item;