程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> ASP.NET >> 關於ASP.NET >> [開發故事]第二回:LINQ來了,先忘記foreach

[開發故事]第二回:LINQ來了,先忘記foreach

編輯:關於ASP.NET

你看,LINQ已經全面光臨了,本文並非探討LINQ的是是非非,而是通過自己開 發過程的一個小小的側面來展示,LINQ已經來了,而且更美好。

對技術而言,創新的最大敵人,是轉換固有思維,而不是技術本身。

1 引言

今天,Terry點敲了我對於一段代碼的處理,誠如本文標題所言,事件緣起於 我對一個List<T>轉換的小小處理。首先來看看,這個List<T>轉換 雙方的本來面目,以一個常見的User類為例而言,User類代表了Model層的實體類 ,其定義為:

// Release : code10, 2008/10/06
// Author : Anytao, http://www.anytao.com
public class User
{
 public int ID { get; set; }
 public string FirstName { get; set; }
 public string SecondName { get; set; }
 public int Age { get; set; }
}

而Account類,則代碼了Business Object層的業務類,其定義為:

// Release : code10, 2008/10/06
// Author : Anytao, http://www.anytao.com
public class Account
{
 public int ID { get; set; }
 public string Name { get; set; }
 public int Age { get; set; }
}

那麼一件重要的事情,就是如何完成二者之間的轉換,尤其是,類似於 List<User>到List<Account>這樣的轉換,是常常發生在業務處理的 實際操作中。關於二者的區別,屬於設計方面的論題,不是本文關注的對象。

2 本來的實現---想起來就是foreach

好了,典型的List<T>轉換,我們固有思維中想到的就是循環了,所以 我想都沒想就實現了下面的處理過程:

// Release : code10, 2008/10/06
// Author : Anytao, http://www.anytao.com
public List<Account> GetAccounts(List<User> users)
{
 List<Account> accounts = new List<Account> ();

 foreach (User item in users)
 {
  Account account = new Account();
  account.ID = item.ID;
  account.Name = item.FirstName + item.SecondName;
  account.Age = item.Age;
  accounts.Add(account);
 }

 return accounts;
}

固有的思維並沒有錯,程序和處理誠如以往一樣值得回味。但是,忘卻和前進 同樣重要,所以我忘了用最簡單的辦法來更優雅的處理這一操作。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved