最近在準備WCF考試也快告一個段落(畢竟5/7號就要考了,今天也已經5/4 >”<)
其實這樣匆匆的準備一個月的時間,很多部分看的都不是很懂,
或許是因為自己閱讀英文能力還不夠吧,所以看得有點吃力 >"<
最近常覺得程式開發的學習,真的是一條無止盡的路,
新的技術、新的概念、對我們這些程式設計者而言,
若不時常更新,可能隨時就被新潮流給掩沒!!
==========================================
今天來記錄一下,前陣子林大哥分享的技術。
在程式裡面,我們會常常需要使用到找尋某一個物件資料,
在.Net 2.0的時候,只要有實作IDictionay的類別都有索引鍵/值組,
也就是說將物件資料放進這個集合中,即可用Key找出相對應的物件,
這樣的物件集合對程式來說相當方便,但若遇到未實作這個介面的集合時
那又該如何呢??
舉例來說,假設今天有一個集合 List<string> ,我想要找集合中符合"AAA"的字串,
對我這樣的小嫩嫩設計師來說,可能會選擇這種寫法:
1: List<string> myList= new List<string>();
2: myList.Add("AAA");
3: myList.Add("BBB");
4: myList.Add("CCC");
5:
6: foreach (string thisString in myList)
7: {
8: if (thisString.CompareTo("AAA") == 0)
9: {
10: MessageBox.Show("找到AAA物件");
11: }
12: }
但其實還有一種更Smart的簡易寫法,
其實.Net 2.0時就有提供delegate 匿名方法寫法如下:
1: private void button1_Click(object sender, EventArgs e)
2: {
3:
4: List<string> myList= new List<string>();
5:
6: myList.Add("AAA");
7: myList.Add("BBB");
8:
9: myList.Add("CCC");
10:
11:
12: string strResult=myList.Find(delegate(string strFind) {
13:
14: return strFind.CompareTo("AAA")==0;
15: });
甚至於要將這個List集合來自訂Sort也可以,程式如下所示
1: List<string> myList= new List<string>();
2:
3: myList.Add("AAA");
4:
5: myList.Add("BBB");
6:
7: myList.Add("CCC");
8:
9:
10:
11: myList.Sort(delegate(string a, string b){
12:
13: return a.CompareTo(b);
14:
15: });
其實當然使用Linq這種簡單的功能也可以做到,反正就只是一個紀錄而以嚕。
沒有留言:
張貼留言