1 引言
今天,terry點敲了我對於一段**的處理,誠如本文標題所言,事件緣起於我對乙個list轉換的小小處理。首先來看看,這個list轉換雙方的本來面目,以乙個常見的user類為例而言,user類代表了model層的實體類,其定義為:
// release : code10, 2008/10/06
// author : anytao,
publicclass user
publicstring firstname
publicstring secondname
publicint age
}
而account類,則**了business object層的業務類,其定義為:
// release : code10, 2008/10/06
// author : anytao,
publicclass account
publicstring name
publicint age
}
那麼一件重要的事情,就是如何完成二者之間的轉換,尤其是,類似於list到list這樣的轉換,是常常發生在業務處理的實際操作中。關於二者的區別,屬於設計方面的論題,不是本文關注的物件。
2 本來的實現---想起來就是foreach
好了,典型的list轉換,我們固有思維中想到的就是迴圈了,所以我想都沒想就實現了下面的處理過程:
// release : code10, 2008/10/06
// author : anytao,
public listgetaccounts(listusers)
return accounts;
}
固有的思維並沒有錯,程式和處理誠如以往一樣值得回味。但是,忘卻和前進同樣重要,所以我忘了用最簡單的辦法來更優雅的處理這一操作。
3 改進的方式---linq真的來了
liqn來了,就不要吝嗇自己的**,對於相同的**需求,優雅和簡潔永遠是值得追求的感覺,所以值得看似經典的**,其實還可以更好:
// release : code10, 2008/10/06
// author : anytao,
public listgetaccounts(listusers)
;
return result.tolist();
}
改善就這麼一點點,以linq方式實現的「智慧型」轉換,看起來更美,不是嗎。
4 結論
linq已經來了,你還等什麼。是的,進步只有一點點,作為開發故事中的小小一筆,但是我覺得值得書寫。當然,這只是linq應用的小小示例,同時foreach作為最重要的迴圈手段,仍然有著不可替代的作用,不容忽視。
LINQ聖經 《LINQ實戰》
本書作者是 linq 社群中的重要成員,他們在書中展示了這一技術的精髓 快去享受這一盛宴吧。matt warren 微軟主架構師,linq 之父 linq 方面的傑作!深入 全面 客觀,令人欲罷不能。強烈推薦!patrick smacchia 微軟 mvp c 和 net 2.0 實戰 作者 微軟 ...
LINQ教程一 LINQ簡介
一 為什麼要使用linq 要理解為什麼使用linq,先來看下面乙個例子。假設有乙個整數型別的陣列,找到裡面的偶數並進行降序排序。1 using system 2using system.collections.generic 3using system.linq 4using system.text...
LINQ學習(一) LINQ初認識
一 簡介 1 什麼是linq?linq language integrated query 語言繼承查詢。linq是一組語言特性和api,可以使用統一的方式編寫各種查詢。用於儲存和檢索來自不同資料來源的資料,從而消除了程式設計語音和資料庫之間的不匹配,以及為不同型別的資料來源提供單個查詢介面。lin...