Python中模擬C Linq的一些操作

2021-09-08 11:29:27 字數 1356 閱讀 8239

閒來無事時積累的一些linq函式,有時間就更新。

需要注意python版本如果低於3.0不支援lambda,只能單獨寫函式傳參,比較麻煩

1.firstordefault:

def

firstordefault(collection, func):

result =filter(func, collection)

if len(result) == 0: return

none

return

result[0]

defmain():

def condition(m): return m < 3

print firstordefault([1,2,3,4], condition)

#print 1

返回1

2.where:

def

where(collection, func):

result =filter(func, collection)

if len(result) == 0: return

none

return

result

defmain():

def condition(m): return m < 3

print where([1,2,3,4], condition)

#print [1,2]

返回篩選後的陣列1,2

3.distinct:

def

distinct(collection, iscontainfunc):

resultlist =list()

for item in

collection:

deffirstordefaultpredicate(m):

return

iscontainfunc(m,item)

containvalue =firstordefault(collection, firstordefaultpredicate)

if containvalue !=none:

ifnot item in

resultlist:

return

resultlist

defmain():

tmp = [1,2,2,3,4,3]

def compare(x,y):return x==y

result =distinct(tmp, compare)

print

result

#print [1,2,3,4]

去重複,依賴firstordefault。

C linq中的all方法

確定是否對序列中的所有元素都滿足條件。返回乙個bool型別。一定要注意是所有的元素都要滿足才會返回true,只要有乙個元素不滿足就返回false 關於返回值為啥是bool,可以看一下關於func的解讀。宣告乙個int型別的陣列 int ints 判斷陣列的每乙個值是否都小於11 bool zc in...

C Linq中的Select方法的說明

enumerable.range 0,20 select i console.writeline i 計算完成 return x 當你嘗試執行上面的 會發現並沒有輸出,這是為什麼呢?意思就是它只是儲存了乙個操作,相當於儲存了乙個委託,只有在列舉時才執行委託。即 將結果tolist時就會產生輸出,因為...

C Linq 的使用整理 持續更新中

linq即language integrated query 語言整合查詢 linq是整合到c 和visual basic.net這些語言中用於提供查詢資料能力的乙個新特性。注 linq 發音為link 1 linq是.net框架的擴充套件,它允許我們以資料庫查詢的方式查詢資料集合。2 c 3.0包...