-6
私は20のフィールドを持つC#クラスを持っており、リスト "A"(クラスオブジェクトのリスト)をループし、リスト "A"のすべての値をリスト "B"オブジェクト)。 List Aの値の最大数は常に160レコードを超えません。操作が完了取得するためC#リストのパフォーマンスを向上させる
それは私に25秒数を取っている(一覧「A」をループと「B」のリストに追加する)私は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
この操作にこの時間がかかる理由はまったくありません。問題はリスト自体ではなく、あなたがそれを使ってやっていることです。関連コードを投稿してください。 –
いくつかのコードを提供できるといいですね。 –