需求: 乙個集合中篩選出符合條件的。
思路是定義乙個,迴圈集合中變數,判斷是否符合條件,新增到新的集合
var list1 = new list();view codeforeach (int i in
list)
}//帥選集合中元素小於222的
var list2 = new list();
foreach(int x in
list)
}
思考: 需求不同,支援判斷是否符合條件這個步驟是變化的,其餘的都是不變的。
將可變的邏輯抽出,用委託封裝,接收乙個引數,返回乙個bool
public擴充套件方法:定義在靜態中的靜態方法中,第乙個引數型別前加上this關鍵字的方法,即為該型別的擴充套件方法,顧名思義,給該型別增加乙個方法static list newwhere(list items, funcfunc)
return
list;
}
如上例中,給list增加乙個篩選方法,
public假設這個方法不只是要給list用static list newwhere(this listitems,
func
func)
return
list;
}//呼叫
var iresult = list.newwhere(p => p > 0);
///我學習我記錄,linq-where 的本質。接受乙個委託,乙個ienumerable 型別的引數
/// ///
//////
///public
static ienumerablenewwhere(
this ienumerableitems, funcbool>func)
}return
list;
}
總結,在動手之前,想想怎麼做,分到聚體的步驟,抽出相同的邏輯步驟一層層封裝。
我的學習記錄7
2017.10.17 李錦浩 第07天 1 今天完成了昨天未完成的程式,並且除錯成功,目前 沒有發現有什麼問題,但對於程式的高效簡潔性來說我覺得我做的還是不夠,還需要繼續努力。2 今天還自學了函式的呼叫和自定義,對於函式中的返回值及函式的部分呼叫機制理解並能夠運用。附 昨天的程式完成版 includ...
我的學習記錄25
2017.11.4李錦浩 第25天 今天做了乙個百貨公司的程式,將固定 輸入陣列,然後輸出相應公司的營業額。我盡量利用了從前學的關於陣列的知識,運用了一下偏移量來表示陣列。附 百貨公司 include using namespace std int main int b 3 cout 請輸入1 2 ...
我的學習記錄29
2017.11.08 李錦浩 第29天 今天學習了關於位運算的符號認識,了解了大部分位運算的內涵。另外我也弄明白了如何利用掩碼來確定乙個二進位制數的 方式。今天還利用前面所學,做了乙個隨機計算器的公升級版程式。附 隨機計算器 公升級版 pragma once include include incl...