溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

LINQ如何橫向?qū)Ρ萬(wàn)oreach

發(fā)布時(shí)間:2021-12-01 16:17:05 來(lái)源:億速云 閱讀:176 作者:小新 欄目:編程語(yǔ)言

這篇文章將為大家詳細(xì)講解有關(guān)LINQ如何橫向?qū)Ρ萬(wàn)oreach,小編覺得挺實(shí)用的,因此分享給大家做個(gè)參考,希望大家閱讀完這篇文章后可以有所收獲。

1 引言

首先來(lái)看看,這個(gè)List轉(zhuǎn)換雙方的本來(lái)面目,以一個(gè)常見的User類為例而言,User類代表了Model層的實(shí)體類,其定義為:

    // Release : code10, 2009/05/06
   // Author  : Anytao, http://www.51cto.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層的業(yè)務(wù)類,其定義為:

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

那么一件重要的事情,就是如何完成二者之間的轉(zhuǎn)換,尤其是,類似于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)了,所以我想都沒想就實(shí)現(xiàn)了下面的處理過(guò)程:

        // Release : code10, 2009/05/06
         // Author  : Anytao, http://www.51cto.com
        public List GetAccounts(Listusers)
 {            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;        }

固有的思維并沒有錯(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)是值得追求的感覺,所以值得看似經(jīng)典的代碼,其實(shí)還可以更好:

// Release : code10, 2009/05/06
// Author  : Anytao, http://www.51cto.com
 public List GetAccounts(Listusers)
   {  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)更美,不是嗎。

關(guān)于“LINQ如何橫向?qū)Ρ萬(wàn)oreach”這篇文章就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,使各位可以學(xué)到更多知識(shí),如果覺得文章不錯(cuò),請(qǐng)把它分享出去讓更多的人看到。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI