首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> .NET 網頁程式設計 >> ASP.NET 基礎 >> 關於ASP.NET

LINQ 來了,先忘記 foreach:從集合轉換看思維轉型

     編輯:關於ASP.NET

LINQ 已全面登上舞台,本文不探討其優劣,而是透過開發過程中一個小小的集合轉換案例,展示 LINQ 如何帶來更優雅的編碼體驗。對技術而言,創新的最大阻力往往不是技術本身,而是我們固有的思維模式。

引言

今天,Terry 指出了我對一段 List<T> 轉換代碼的處理方式。事情緣起於一個常見的實體類 User 與業務類 Account 之間的轉換:

public class User
{
    public int ID { get; set; }
    public string FirstName { get; set; }
    public string SecondName { get; set; }
    public int Age { get; set; }
}

public class Account
{
    public int ID { get; set; }
    public string Name { get; set; }
    public int Age { get; set; }
}

如何將 List<User> 優雅地轉換為 List<Account>,是業務邏輯中常見的操作。兩者的設計差異不在本文討論範圍內。

原本的實現——腦海中浮現的只有 foreach

面對典型的 List 轉換,固有思維直指循環。我毫不猶豫寫出了如下代碼:

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;
}

這種寫法沒有錯,邏輯清晰,卻忽略了更簡潔、更具表達力的做法。忘卻舊習慣、擁抱新範式,同樣重要。LINQ 讓我們能以聲明式風格完成同樣任務,程式碼更易讀、更易維護。

(圖片佔位符保留)

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved