Гость
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / Linq Создание массива из подэлементов, без вложенности / 3 сообщений из 3, страница 1 из 1
27.06.2011, 13:56
    #37325854
Kane_sql
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Linq Создание массива из подэлементов, без вложенности
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
    class Program
    {
        static void Main(string[] args)
        {
            var list = new List<Category>() 
            { 
                new Category() { 
                    CategoryId = 1,
                    Elements = new List<Element>() {
                        new Element() {  ElementId = 1, ElementName = "Name1" } ,
                        new Element() {  ElementId = 2, ElementName = "Name2" } ,
                        new Element() {  ElementId = 3, ElementName = "Name3" } 
                    } 
                } ,
                new Category() { 
                    CategoryId = 2,
                    Elements = new List<Element>() {
                        new Element() {  ElementId = 4, ElementName = "Name4" } ,
                        new Element() {  ElementId = 5, ElementName = "Name5" } ,
                        new Element() {  ElementId = 6, ElementName = "Name6" } 
                    } 
                } 
            };
            var listOfElements = list.Select(x => x.Elements.ToList()).ToList(); // Здесь получается массив в массиве, что мне не надо
            // Чтобы просто создать массив елементов без подмассива делаю так
            List<Element> resultElements = new List<Element>();
            foreach (var item in listOfElements) resultElements.AddRange(item);
            // resultElements - Это то что нужно, но через foreach, как сделать чтобы было короче, с помощью линка

        }
    }

    public class Category 
    {
        public int CategoryId { get; set; }
        public List<Element> Elements { get; set; }
    }

    public class Element
    {
        public int ElementId { get; set; }
        public String ElementName { get; set; }
    }

В общем привел выше пример, как сделать так чтобы в итоге получить массив элементов без использования цикла foreach? Потому что эта запись var listOfElements = list.Select(x => x.Elements.ToList()).ToList() - приводить к тому что получается массив массивов типа Element, то есть List<List<ELement>>, а мне надо, чтобы просто List<Element>, как в линке просуммировать к уже выбранным эелементам.?
...
Рейтинг: 0 / 0
27.06.2011, 16:30
    #37326169
stimpi
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Linq Создание массива из подэлементов, без вложенности
Код: plaintext
list.SelectMany(x => x.Elements).ToList();
...
Рейтинг: 0 / 0
27.06.2011, 17:55
    #37326298
Kane_sql
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Linq Создание массива из подэлементов, без вложенности
stimpi,
Спасибо большое, я просто раньше с selectMany имел дело только при join-е таблиц, оказывается и так можно, спасибо!!
...
Рейтинг: 0 / 0
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / Linq Создание массива из подэлементов, без вложенности / 3 сообщений из 3, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]