私は本からプロジェクトを実装していますが、なぜ私はこれらのラムダが必要なのか多少混乱しています。ラムダの使い方は私を混乱させます
public class Cart
{
private List<CartLine> lineCollection = new List<CartLine>();
public class CartLine
{
public Product Product { get; set; }
public int Quantity { get; set; }
}
public void RemoveLine(Product product)
{
lineCollection
.RemoveAll(p => p.Product.ProductID == product.ProductID);
}
}
はなぜ.RemoveAll(p=> p.Product.ProductID == product.ProductID)
が必要なのですか? .RemoveAll
ラムダ式が必要ですか?私はなぜthis.Product.ProductID
を使用できないのか分かりません。私はProductがリストであることを認識しています。p=> P.Product
は何らかの反復を行い、必要なものが見つかるまで値を比較していますか?
製品は、私は、一般的に物事のこれらの種類のラムダの目的に関しては混乱している
public class Product
{
public int ProductID { get; set; }
public string Name { get; set; }
public string Description { get; set; }
public decimal Price { get; set; }
public string Category { get; set; }
}
で定義されています。 p=>p.Product.ProductID == product.ProductID
Lambdaを使用していないことが分かりましたので、私はそれが何の略語なのかを理解することができましたか?
私はこの1つの周りに私の頭を包み込むように見えることができないし、事前に感謝します。
ああ、そんなに意味があります。したがって、これらの実装にはイテレータが含まれており、各アイテムを解決する方法を渡しています。 は、だから私は、私はこれらすべてのLINQのものはイテレータが含まれていない推測しています、そして、イテレータでから一つの質問をセットを構築するために何 をしてください解決するための関数を渡して理解しています。私はいくつかのセットを解決するための商品コードを使用しているようではないbecaues私はその上で穏やかに困惑している別のクラスのように参照[これは製品である] .OrderByた(p => p.ProductID) 、それは何とかとしてそれを使用しています基準?これはProductIDへの参照と同様に機能しますか? – Jordan
@Jordan:いいえ、 'OrderBy'の例では、コレクションがソートするためにコレクションが使用する値を返すために使用されるラムダを渡すだけです。 'p => generate-random-value'を渡して毎回ランダムな順序を得ることができます。したがって、これは 'ProductID'への参照ではなく、ちょうどある値です。ラムダ式は(この場合のように)必要に応じて委任に変換されますが、コンテキストは、それを必要とする場合、それはまた、式ツリーであってもよいこと – zerkms