為什么在IEnumerable上沒有ForEach擴(kuò)展方法?受另一個問題的啟發(fā),詢問失蹤的人Zip職能:為什么沒有ForEach中的可拓方法Enumerable班級,等級?或者任何地方?唯一一個獲得ForEach方法是List<>..有什么原因?qū)е滤娜笔?表現(xiàn))嗎?
3 回答

阿晨1998
TA貢獻(xiàn)2037條經(jīng)驗 獲得超6個贊
list.ForEach( item =>{ item.DoSomething();} );
foreach(Item item in list){ item.DoSomething();}
類型檢查:Foreach是在運行時完成的,F(xiàn)orEach()是在編譯時完成的(Big Plus!) 調(diào)用委托的語法確實要簡單得多:objects.ForEach(DoSomething); ForEach()可以鏈接起來:盡管這樣一個特性的邪惡/有用性是可以討論的。

有只小跳蛙
TA貢獻(xiàn)1824條經(jīng)驗 獲得超8個贊
// Possibly call this "Do"IEnumerable<T> Apply<T> (this IEnumerable<T> source, Action<T> action){ foreach (var e in source) { action(e); yield return e; }}
行家
MySequence .Apply(...) .Apply(...) .Apply(...);
反方
.ForEach()
.ToList()
// possibly call this "Realize"IEnumerable<T> Done<T> (this IEnumerable<T> source){ foreach (var e in source) { // do nothing ; } return source;}
- 3 回答
- 0 關(guān)注
- 502 瀏覽
添加回答
舉報
0/150
提交
取消