我刚开始学习lambda表达式。
是否可以进一步简化以下代码:
Customer customer = Customers.FirstOrDefault(c => c.ID == 3);
if (customer == null)
{
customer = new Customer() { FirstName = "Ben", LastName = "Foster", ID = 3 };
Customers.Add(customer);
}
// do something with customer
customer.CreateProfile();
基本上我想检查集合中是否存在对象。如果不是我想创建它,请将其添加到集合中,稍后再使用它。
由于 本
答案 0 :(得分:5)
正如所写的那样,它似乎不再需要保持清晰和可读性。肯定有滥用lambdas和操作符??
的方法可以将它们全部写在一行上,但最终它们只能用来模糊代码。
答案 1 :(得分:1)
这可能就像你能得到的那样“简单”,但就像帕维尔所说的那样,把它写在一条线上有点蠢。无论如何,这就是你好奇的。
Customer customer = Customers.FirstOrDefault(c => c.ID == 3).DefaultIfEmpty(new Customer() { FirstName = "Ben", LastName = "Foster", ID = 3 });
customer.CreateProfile();
答案 2 :(得分:1)
答案 3 :(得分:1)
您可以使用Set实现而不是普通的集合。
在http://www.surcombe.com/nhibernate-1.2/api/html/N_Iesi_Collections.htm
查看Iesi.Collections