C Lamada表示式的一些理解

2021-10-08 22:34:50 字數 1408 閱讀 7668

隨著對c#語言的不斷深入,開發更簡潔清晰的**是我的下乙個目標

lamada表示式之前是在js中碰見過,但是一直沒有對其深入理解,這篇文章就算是記錄一下零碎的理解過程。歡迎討論,我會不斷更新文章。

在js中有乙個叫箭頭函式(arrow function)的表示式,這就是我對lamada表達的的初識,只是會簡單的使用。

第乙個樣例

這是乙個判斷集合元素是否相同的if判斷,如果沒有lamada表示式之前,我們可能會通過對集合中的物件進行先排序再比較的方法。這樣的**會顯得十分臃腫。但是如果集合中不會有相同元素的時候就可以使用下面這個判斷方法。

if

(lista.count == listb.count && lista.

count

(t =

>

!listb.

contains

(t))==0

)

為了理解 => 我們可以讓自己將箭頭 左邊看成是函式的引數,箭頭右邊看成是滿足條件。

這裡我們首先要明白 t 是什麼,t在箭頭右邊出現在contains(函式中),所以 t 的型別要滿足listb集合中的元素型別。

!listb.

contains

(t)

表示t元素在集合b中不存在

t =

>

!listb.

contains

(t)

表示所有在集合b中不存的在元素

ista.

count

(t =

>

!listb.

contains

(t))

==0

表示

集合a的元素在集合b中不存在在集合a**現的次數為零。

2.第二個樣例

list = list.

where

((x, x_index)

=> x_index==

(list.

findindex

(y=>y==x)))

.tolist()

;

這次我們快一點

list.

findindex

(y=>y==x)

返回遇到的第乙個和x相同的元素下標

list.

where

((x, x_index)

=> x_index==

(list.

findindex

(y=>y==x)

))

獲得元素下標和該元素在集合中第一次出現的下標相同的元素

正規表示式符號的一些理解

關於正規表示式符號的一些理解 a 匹配有a或者沒有a 的字元 匹配全部字元 沒有意義 ba 匹配至少乙個b後面有多個或零個a cca 匹配至少包含cc的後面有乙個或多個a a hello匹配所有0個或多個a後,緊跟hello的行。即hello前面可以有任意多個a。s d 匹配 s d之間任意兩個字元...

一些正規表示式

要嚴格的驗證手機號碼,必須先要清楚現在已經開放了哪些數字開頭的號碼段,目前國內號碼段分配如下 移動 134 135 136 137 138 139 150 151 157 td 158 159 187 188 聯通 130 131 132 152 155 156 185 186 電信 133 153...

一些正規表示式

判斷是否是正整數if isnan paramvalue paramvalue 0 else 金額的格式判斷輸入金額的要求 整數字最多十位,小數為最多為兩位,可以無小數字 0 9 1 9 0 9 0 9 function checkmoney str 0 9 if re.test str else 手...