Выберите несколько значений из коллекции, используя лямбда-выражение - PullRequest
0 голосов
/ 03 сентября 2018

Как выбрать два или более значений из коллекции в список, используя одно лямбда-выражение? Вот что я пытаюсь:

List<Prodcut> pds=GetProducts();
List<Product> pdl = new List<Product>();
foreach (Product item in pds)
{
    pdl.Add(new Product
    {
        desc = item.Description,
        prodId = Convert.ToInt16(item.pId)
    });
}

GetProducts () возвращает список продуктов, которые имеют много (около 21) атрибутов. Приведенный выше код выполняет свою работу, но я пытаюсь создать подмножество списка продуктов, извлекая только два атрибута продукта (description и productId), используя одно лямбда-выражение. Как мне это сделать?

1 Ответ

0 голосов
/ 03 сентября 2018

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

Таким образом, вы можете использовать Select:

var pdl = pds.Select(p => new Product 
                              { 
                                  desc = p.Description, 
                                  prodId = Convert.ToInt16(p.pId)
                              }).ToList();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...