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

List 排序擴展方法實作(上):動態類型建立與屬性存取核心技術

     編輯:關於C語言

動態取得物件屬性名稱與值

利用反射與 Lambda 表達式簡潔實作:

/// 獲得物件所有公開屬性名稱與值
public static Dictionary DynamicGetProperty(object obj)
{
    Dictionary temp = new Dictionary();
    Array.ForEach(obj.GetType().GetProperties(), 
        p => temp.Add(p.Name, p.GetValue(obj, null)));
    return temp;
}

動態建立類型、設定值、取得值

前文已完成動態類型建構、屬性值設定與取得的核心方法,奠定後續排序功能基礎。

取得型別屬性名稱與回傳型別

為動態建立排序後的匿名類型做準備:

/// 取得型別所有公開屬性名稱與完整型別名稱
private static Dictionary TypeTransform(Type type)
{
    Dictionary dictionary = new Dictionary();
    Array.ForEach(type.GetProperties(), 
        p => dictionary.Add(p.Name, p.PropertyType.FullName));
    return dictionary;
}

技術棧整理

至此已完成四大核心能力:

  1. 動態建立型別
  2. 動態設定屬性值
  3. 動態取得屬性值
  4. 動態取得型別屬性中繼資料

下篇將運用這些基礎設施實作支援並列排名的 List 排序擴展方法。

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