我有代碼:如何優化此代碼使用lambda表達式
protected void Method1(List<SomeClass> mylist)
{
foreach(var item in mylist)
{
if (!SomeClass.Validate(item))
{
continue;
}
DoStuff(item);
}
}
protected void Method2(List<SomeClass> mylist)
{
foreach(var item in mylist)
{
if (!SomeClass.Validate(item) || item.Value == 0)
{
continue;
}
DoStuff(item);
}
}
如何組織這兩個方法?
它們有區別只有item.Value == 0
可以使用lambda表達式。
我不知道
+1,我想寫這是我的第二個解決方案:)但是,我認爲這將是,如果你會寫'mylist.Where(過濾器)更好。 ForEach(DoStuff)' –
等待,您的解決方案爲錯誤的項目做些事情。你需要重寫過濾器 –
@RomanPekar你不能寫'mylist.Where(filter).ForEach(DoStuff)'因爲.ForEach()是'List'方法而不是'IEnumerable',如果你需要,你應該寫:'' mylist.Where(filter).ToList()。ForEach(i => DoStuff(i))' –