所以我正在從一本書中實現一個項目,我對於爲什麼需要這些lambda表達式感到有點困惑。Lambda的使用讓我感到困惑
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
需要lambda表達式嗎?我不知道爲什麼我不能使用this.Product.ProductID
,我意識到產品是一個列表,是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; }
}
我一般困惑,lambda表達式在這些事情的目的定義。是否有一些與p=>p.Product.ProductID == product.ProductID
等同的東西我看不到使用Lambdas,所以我可以更多地瞭解它是什麼速記?
我似乎無法將我的頭圍繞在這一個,並提前感謝。
啊,那確實有很大的意義。所以其中一些實現包含迭代器,並且您正在通過它來解析每個項目。 所以我明白傳遞函數來解決在迭代器中構建集合,然後請求一個問題, 我猜並不是所有這些linq事物都包含迭代器。我在另一個類中看到[這是在一個產品] .OrderBy(p => p.ProductID) 我有點困惑,因爲它不像使用ProductID來解決某些設置,它以某種方式將它用作一個標準?它的功能就像對ProductID的引用一樣嗎? – Jordan 2011-12-15 01:46:10
@Jordan:nope,在`OrderBy`示例中,您只需傳遞將用於返回集合用於排序的值的lambda。你可以傳遞`p => generate-random-value`並且每次都得到隨機排序。所以它不是對`ProductID`的引用,而只是一些價值。 – zerkms 2011-12-15 01:49:21