首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

C# 遍歷 IList 中匿名對象集合:反射獲取屬性值完整示例

     編輯:程式設計綜合問答

IList 存儲匿名類型對象(new {a=1,b=2,c=3,d=4}),需遍歷每行每列值。因匿名類型編譯器生成內部類,只能通過反射動態獲取屬性。

完整可運行代碼

using System;
using System.Collections.Generic;
using System.Linq;

class Program {
    static void Main() {
        var list = new List<object> {
            new { a=1, b=2, c=3, d=4 },
            new { a=11, b=12, c=13, d=14 },
            new { a=21, b=22, c=23, d=24 }
        };

        foreach (var obj in list) {
            var props = obj.GetType().GetProperties();
            foreach (var prop in props) {
                Console.Write(prop.GetValue(obj) + "\t");
            }
            Console.WriteLine();
        }
    }
}

輸出

1	2	3	4
11	12	13	14
21	22	23	24

進階建議

  • 若結構固定,強類型 List<MyDto> 避免反射開銷,代碼更清晰。
  • 頻繁調用時,緩存 PropertyInfo[] 或使用 FastMember/Expression Tree 提速。
  • .NET Core 3.0+ 可用 System.Text.Json 序列化為 JsonElement 再遍歷,無需反射。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved