У меня есть класс C# с 20 полями, и я перебираю список «A» (список объектов класса) и добавляю все значения из списка «A» в список «B» (список классов объекты) . В любой момент времени максимальное количество значений в списке «А» не будет превышать 160 записей.Увеличение производительности списка C#
Он берет меня 25 секунд для операции, чтобы получить завершена (Перебор списка «А» и добавить их в список «Б»)
Я попытался изменить список на HashSet
и время производительности был снижен до 19 сек. Что я могу сделать, чтобы значительно увеличить производительность, чтобы довести ее до 2-3 секунд. Какие-либо предложения?
var products = new List<ProductDto>();
using (var _userEntities = new UserEntities())
{
UserDto user = GetUserDto(userEmail, _userEntities);
if (user != null)
{
var users = _userEntities.Where(x.User.userId == user.Id);
foreach (User user in users)
{
if (_userEntities.Products.FirstOrDefault(y => y.userId == user.Id) != null)
{
var Product = new ProductDto()
{
Id = user.Id.ToString(),
ProductId = user.Product != null ? user.ProductId : string.Empty,
Name = user.Product != null ? user.Product.Name : string.Empty,
SalePrice = user.SalePrice == null ? string.Empty : user.SalePrice.ToString(),
OrderId = user.OrderID,
CreatedDate = user.CreatedDate,
HasChildItems = user.Product != null && user.Product.HasChildItems != null && user.Product.HasChildItems ? true : false,
OrderNumber = user.OrderNumber,
};
products.Add(Product);
}
}
}
}
Итак, вы просто делаете 'listB.AddRange (listA);'? – DavidG
Нет никакой причины, почему эта операция должна длиться так долго. Проблема не в самом списке, это то, что вы делаете с этим. Отправьте свой соответствующий код, пожалуйста. –
Было бы здорово, если бы вы могли предоставить код. –