c# – Lambda的使用令我困惑
发布时间:2020-12-16 00:01:47 所属栏目:百科 来源:网络整理
导读:所以我正在从一本书中实现一个项目,我有点困惑为什么我需要这些lambdas. public class Cart{ private ListCartLine lineCollection = new ListCartLine(); public class CartLine { public Product Product { get; set; } public int Quantity { get; set; }
所以我正在从一本书中实现一个项目,我有点困惑为什么我需要这些lambdas.
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)? 产品定义于 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; } } 我常常对Lambdas在这些事情上的目的感到困惑.是否有一些等于p => p.Product.ProductID == product.ProductID 我似乎无法绕过这一个,并提前感谢. 解决方法
RemoveAll实现有一些迭代器,它为每次迭代调用你的匿名函数.喜欢:
iterator { your_lambda_function(current_item); } 并且p => p.Product.ProductID == product.ProductID可以改写为: delegate(CartLine p) { return p.Product.ProductID == product.ProductID; } 这看起来有点清楚 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |