av激情亚洲男人的天堂国语,日韩欧美精品一中文字幕,无码av一区二区三区无码,国产又色又爽又刺激的a片,国产又色又爽又刺激的a片

LINQ橫向?qū)Ρ萬(wàn)oreach方法

1 引言

創(chuàng)新互聯(lián)公司專(zhuān)業(yè)為企業(yè)提供江門(mén)網(wǎng)站建設(shè)、江門(mén)做網(wǎng)站、江門(mén)網(wǎng)站設(shè)計(jì)、江門(mén)網(wǎng)站制作等企業(yè)網(wǎng)站建設(shè)、網(wǎng)頁(yè)設(shè)計(jì)與制作、江門(mén)企業(yè)網(wǎng)站模板建站服務(wù),十年江門(mén)做網(wǎng)站經(jīng)驗(yàn),不只是建網(wǎng)站,更提供有價(jià)值的思路和整體網(wǎng)絡(luò)服務(wù)。

今天,Terry點(diǎn)敲了我對(duì)于一段代碼的處理,誠(chéng)如本文標(biāo)題所言,事件緣起于我對(duì)一個(gè)List 轉(zhuǎn)換的小小處理。首先來(lái)看看,這個(gè)List 轉(zhuǎn)換雙方的本來(lái)面目,以一個(gè)常見(jiàn)的User類(lèi)為例而言,User類(lèi)代表了Model層的實(shí)體類(lèi),其定義為:

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

而Account類(lèi),則代碼了Business Object層的業(yè)務(wù)類(lèi),其定義為:

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

那么一件重要的事情,就是如何完成二者之間的轉(zhuǎn)換,尤其是,類(lèi)似于List 到List 這樣的轉(zhuǎn)換,是常常發(fā)生在業(yè)務(wù)處理的實(shí)際操作中。關(guān)于二者的區(qū)別,屬于設(shè)計(jì)方面的論題,不是本文關(guān)注的對(duì)象。

2 本來(lái)的實(shí)現(xiàn)---想起來(lái)就是foreach

好了,典型的List 轉(zhuǎn)換,我們固有思維中想到的就是循環(huán)了,所以我想都沒(méi)想就實(shí)現(xiàn)了下面的處理過(guò)程:

        // Release : code10, 2009/05/06
         // Author  : Anytao, http://www.
        public List
     
       GetAccounts(List
      
        users)       
      
     
 {            List
     
       accounts = new List
      
       ();
      
     
             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;        }

固有的思維并沒(méi)有錯(cuò),程序和處理誠(chéng)如以往一樣值得回味。但是,忘卻和前進(jìn)同樣重要,所以我忘了用最簡(jiǎn)單的辦法來(lái)更優(yōu)雅的處理這一操作。

3 改進(jìn)的方式---LINQ真的來(lái)了

LIQN來(lái)了,就不要吝嗇自己的武器,對(duì)于相同的代碼需求,優(yōu)雅和簡(jiǎn)潔永遠(yuǎn)是值得追求的感覺(jué),所以值得看似經(jīng)典的代碼,其實(shí)還可以更好:

// Release : code10, 2009/05/06 
// Author  : Anytao, http://www. 
 public List
     
       GetAccounts(List
      
        users)     
      
     
   {  var result = from item in users
             select new Account  
          {      ID = item.ID,    
Name = item.FirstName + item.SecondName,
    Age = item.Age   };  
   return result.ToList
     
      ();        }
     

改善就這么一點(diǎn)點(diǎn),以LINQ方式實(shí)現(xiàn)的“智能”轉(zhuǎn)換,看起來(lái)更美,不是嗎。

4 結(jié)論

LINQ已經(jīng)來(lái)了,你還等什么。是的,進(jìn)步只有一點(diǎn)點(diǎn),作為開(kāi)發(fā)故事中的小小一筆,但是我覺(jué)得值得書(shū)寫(xiě)。當(dāng)然,這只是LINQ應(yīng)用的小小示例,同時(shí)foreach作為最重要的循環(huán)手段,仍然有著不可替代的作用,不容忽視。

【編輯推薦】

  1. C#中foreach基礎(chǔ)使用方法
  2. 淺談LINQ如何插入刪除和更新數(shù)據(jù)庫(kù)記錄備注
  3. 使用LINQ查詢非泛型類(lèi)型

網(wǎng)頁(yè)標(biāo)題:LINQ橫向?qū)Ρ萬(wàn)oreach方法
分享鏈接:http://uogjgqi.cn/article/dpsiosc.html
掃二維碼與項(xiàng)目經(jīng)理溝通

我們?cè)谖⑿派?4小時(shí)期待你的聲音

解答本文疑問(wèn)/技術(shù)咨詢/運(yùn)營(yíng)咨詢/技術(shù)建議/互聯(lián)網(wǎng)交流