手寫Linq Where方法

2022-09-22 02:36:09 字數 838 閱讀 7028

在編譯器中可以看到,linq的where方法實際上是微軟提供的乙個便捷的拓展方法,其方法簽名如上,我們也可以試著手寫一遍

using

system;

using

system.collections.generic;

using

system.linq;

namespace

;

var result = nums.where(a => a > 10);//

通過ling的where拓展方法篩選資料

foreach (var i in

result)

var result2 = mywhere(nums, a => a > 10); //

簡單重寫了linq的where方法,沒有使用拓展方法

foreach (var i in

result2)

var result3 = mywhere2(nums, a => a > 10

);

foreach (var i in

result2)

}static ienumerablemywhere(ienumerablelist, funcbool>action)

}return

result;

}static ienumerablemywhere2(ienumerablelist, funcbool>action)}}

}}

LINQ Where 與TakeWhile的區別

區別在於 where會選取所有滿足條件的集合 takewhile會選取滿足條件的集合,一旦遇到不滿足條件的會中止搜尋 例如 var intlist new int console.writeline where foreach var i in intlist.where x x 3 console...

手寫call方法

關鍵字 call,function.prototype.call 自己來實現乙個call方法。語法 fn.call context arg1 call幹了些啥?繫結this到第乙個實參 執行函式並返回結果 function result context.fn args 用完後就刪除 delete c...

我學習,我記錄 linq where

需求 乙個集合中篩選出符合條件的。思路是定義乙個,迴圈集合中變數,判斷是否符合條件,新增到新的集合 var list1 new list foreach int i in list 帥選集合中元素小於222的 var list2 new list foreach int x in list view...