Другой способ добавить элемент в список <> - PullRequest
1 голос
/ 25 марта 2010

В моем другом вопросе Вы можете увидеть код моей arr структуры и PriorityQueue коллекции. Я обычно добавляю элементы в эту коллекцию так:

arr.PriorityQueue.Add(new element((value(item, endPoint) + value(startPoint, item)),item));

Мне любопытно, что есть другой способ сделать это (добавить элемент (который является структурой) объект в список)? В лямбда-образе, например? Я просто жажду знаний :) 1010 *

Ответы [ 3 ]

4 голосов
/ 25 марта 2010

Чтобы добавить новый объект в список, вам нужно создать его экземпляр.

То, как вы делаете это правильно, для этой операции нет лямбда-синтаксиса или другого синтаксического сахара .

3 голосов
/ 25 марта 2010

Другой способ - использовать List.AddRange . Он принимает IEnumerable<T>, поэтому вы можете передать ему любую коллекцию T, включая массивы или результаты выражений Linq:

importantItems.AddRange(allItems.Where(item => item.IsImportant));
2 голосов
/ 25 марта 2010
  arrays arr = new arrays();
        arr.PriorityQueue = new List<element>(
            new [] { 
                new element {node = 1, priority =2 }, 
                new element { node = 2, priority = 10}
                //..
                //..
            });


        arrays arr2 = new arrays();
        arr2.PriorityQueue = new List<element>(
            arr.PriorityQueue
            );


        arrays arr3 = new arrays();
        arr3.PriorityQueue = new List<element>(arr2.PriorityQueue.FindAll(z => (1 == 1)));


        arrays arr4 = new arrays();
        arr4.PriorityQueue = new List<element>(arr3.PriorityQueue.ToArray());
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...