しばらくこれに苦労しています。
私は WebAPI の世界に足を踏み入れており、同じ名前で価格が異なる製品を含むことができるリストを持っています。私がする必要があるのは、価格の変動が発生した製品へのすべての参照を削除することです.
例えば。
name = "コーンフレーク" Price = "1.99M"
name = "コーンフレーク" Price = "1.89M"
name = "ライスクリスピー" Price = "2.09M"
name = "コーンフレーク" Price = "2.09M"
私の最終的なリストにコーンフレークは表示されません。
大量の書き込みがありましたが、製品を削除するのが早すぎて、どこで削除すればよいかわかりません。
public IEnumerable<Product> GetProductsByCategory(int Id)
{
List<Product> sourceProductList = products.Where(p => p.CategoryID == Id).ToList();
List<Product> tempProducts = new List<Product>();
List<Product> targetProductList = new List<Product>();
foreach (var product in sourceProductList)
{
bool isInTempList = tempProducts.Any(x => x.Name == product.Name);
if (!isInTempList)
{
tempProducts.Add(product);
}
else
{
Product tempProduct = product;
bool isPriceDifferent = tempProducts.Where(y => y.Name == tempProduct.Name).Any(y => y.Price != tempProduct.Price);
if (isPriceDifferent)
{
tempProducts.RemoveAll(p => p.Name == product.Name);
// too soon as I may have lots of products with the same name
// but need to remove based on product.Name
}
}
}
targetProductList.AddRange(tempProducts);
return targetProductList;
}
どんな助けでも大歓迎です。
注: 他の穀物が利用可能です