iT邦幫忙

2026 iThome 鐵人賽

DAY 17
0
自我挑戰組

學習C#續系列 第 17 篇

Day 17:select 子句投影作用、LINQ to Object

  • 分享至 

  • xImage
  •  

LINQ to Objects:

  • 指的是直接針對記憶體中的資料集合(如陣列、List、Dictionary<TKey, TValue> 等實作了 IEnumerable 的集合)進行查詢。
  • 查詢是由 .NET 內建的 LINQ 引擎直接在記憶體中逐筆計算,不需要透過 SQL 伺服器或外部轉譯引擎。

select / Select() 的投影作用(Projection):

  • 轉換輸出形狀:將來源序列中的每一筆元素,依照指定規則「塑形」或「映射」成另一種格式或資料型別。
  • 單一欄位擷取:從含有多個屬性的複雜物件中,僅擷取需要的單一純量值(例如將 List 轉成 List 的姓名清單)。
  • 數值計算與格式轉換:在查詢輸出時即時運算新欄位(例如:計算打折後的價格、將西元年轉換為民國年字串)。
  • 匿名型別(Anonymous Types):使用 new { 屬性1, 屬性2 } 即時建立一個無名、唯讀的輕量物件,只挑選前端或呼叫端真正需要的屬性(減少資料傳輸負擔)。
  • DTO / 具名物件轉換:將資料來源物件直接投影成業務用的資料傳輸物件(Data Transfer Object)。
  • 帶索引投影(Indexed Select):方法語法支援多載 Select((item, index) => ...),可在投影時取得元素的序號。

實作範例
https://ithelp.ithome.com.tw/upload/images/20260930/20178925OTPgMagWPW.png

https://ithelp.ithome.com.tw/upload/images/20260930/20178925wklQFN8TY1.png

https://ithelp.ithome.com.tw/upload/images/20260930/20178925oaZpSabpG0.png

https://ithelp.ithome.com.tw/upload/images/20260930/20178925LaJ5kRpAU1.png


上一篇
Day 16:LINQ(排序運算、群組運算)
下一篇
Day 18:發行者/訂閱者模式(Publisher-Subscriber Pattern)
系列文
學習C#續 共 20 篇
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言