追加一個Example, 假設我們有一個List<ClassA> 這樣的陣列.
假如 我們沒辦把知道 呼叫者 希望用哪了 ClassA的Property來排序. 我們可以透過下面的方式來達成:
list.Sort(delegate(ClassA obj1,ClassA obj2) {
if (sortingorder)
return ((IComparable)typeof(ClassA).GetProperty(sortingfield).GetValue(obj1, null))).CompareTo(
((IComparable)(typeof(ClassA).GetProperty(sortingfield).GetValue(obj2, null))));
else
return ((IComparable)(typeof(ClassA).GetProperty(sortingfield).GetValue(obj2, null))).CompareTo(
((IComparable)(typeof(ClassA).GetProperty(sortingfield).GetValue(obj1, null))));
});
來達成 排序的動作
簡單來說 就是在process運作中抓到物件(Type/Class)的資料(Instance) 然後來動態作運算
不過除了上述的performance要注意外, 當大型專案的時候 也要小心造成issue tracking/sustain上的困難
|