Самый короткий способ инициализировать новый список из существующей коллекции (C #)? - PullRequest
0 голосов
/ 23 апреля 2011

Как я могу сделать следующее в C # с меньшим количеством строк кода?Я просто инициализирую новый список, используя поля элементов в существующей коллекции, но изменяю каждое поле, прежде чем добавить его в список.

            List<string> itemDescriptions = new List<string>();
            foreach (CoolItem item in _coolItems)
            {
                itemDescriptions.Add("* " + item.Description);
            }

Я предполагаю лямбда-выражения ...

Ответы [ 4 ]

1 голос
/ 23 апреля 2011
var itemDescriptions = _someItemCollection.ConvertAll(item => "* " + item.ShortDescription);
0 голосов
/ 23 апреля 2011

var fileNames = _coolItems.Select (p => (p.Description));

0 голосов
/ 23 апреля 2011
 List<string> itemDescriptions = (from item in _coolItems
                                  select "* " + item.Descirption).ToList();

Редактировать:

ConvertAll () не будет работать для любой коллекции.Это только для списка

0 голосов
/ 23 апреля 2011

это выражение LINQ для этого:

var itemDescriptions = 
    _coolItems.Select(item => "* " + item.Description).ToList();
...