Если у вас есть вложенное List
типа T
как таковые:Поиска строки в списке вложенного с помощью LINQ
List<List<T>> foo = new List<List<T>>();
И вы предполагаете, что элементы во внутреннем списке столбцы, то, что это самый изящный способ получить строки? Вот что я имею в виду (если вам нужно более подробно):
Добавление элементов (предполагается, что список уже инициализирован)
for (int x = 0; x < 5; x++)
for (int y = 5; y < 10; y++)
foo[x][y] = y + x; // some weird value
Так, поэтому, получая столбец является простым (и самой главной причиной, почему я заменили этот метод на двумерную матрицу):
// 5th column
foo[5];
Но как бы вы получили ряд? Я пытался что-то вроде этого (5-я строка):
// 5th row ??
foo.Where(sublist => true).Where(item => item.Y == 5);
// (Assume the objects have a Y property that reflects its coordinate)
, но кажется, что первый Where
оговорка возвращает тип List<List<T>>
и не List<T>
, как я предполагал.
Таким образом, есть два пути для этого вопроса (либо ответ будет достаточно):
- избежать петель, как вы перечислить через все элементы в списке?
- Как вы получаете строку, используя любой другой простой метод?
Если все остальное не удается, я мог бы также создать класс для представления этого вложенного списка, но я хотел бы предотвратить это, потому что это будет синглтон.
Мне нравится решение @ juharr, потому что вы хотите 5-ю строку, а не строку со столбцом, имеющим определенное значение. Каждый объект во внутреннем списке не должен содержать номер строки, если номер строки не указан из таблицы базы данных и не соответствует позиции в списке. –