#c# #linq #generics #.net-core
#c# #linq #общие #.net-ядро
Вопрос:
Как мне скопировать, обновить и заменить существующий список (это приведет к удалению всех элементов и замене новым классом)? Оба списка уже объявлены.
public class ProductType1
{
public int ProductId { get; set; }
public string ProductName { get; set; }
public string ProductDescription { get; set; }
}
public class ProductType2
{
public int ProductId { get; set; }
public string ProductName { get; set; }
public string ProductDescription { get; set; }
public string ProductBarCodeNumber{ get; set; }
}
List<ProductType1> producttype1 = new List<ProductType1>()
List<ProductType2> producttype2 = new List<ProductType2>()
Цель: удалить все ProductType1 и скопировать все ProductType2 в ProductType1, исключая ProductBarCodeNumber.
тест магазина электроники проекта
Ответ №1:
Вот пример использования проекции Linq
producttype1 = producttype2.Select(x => new ProductType1()
{ ProductId = x.ProductId,
ProductName = x.ProductName,
ProductDescription = x.ProductDescription})
.ToList();
Комментарии:
1. спасибо, и я предполагаю, что это сработает, если producttype1 уже имеет значения, он удалит и примет значения из producttype2 с проекцией, ценю это
2. @JoeMiller да по всем пунктам
3. @JoeMiller, нет, проекция создаст новый экземпляр
List<ProductType1>
. новыми экземплярамиproductType1
. Исходный экземпляр будет собран как мусор. Вы можете просто проверить, сохранив исходный список во временной переменной перед проектированием.