简单点,就那个例子来说明。
using System;
using System.Linq;
using System.Collections.Generic;
public class Program
{
public static void Main()
{
//要排序的字段
var dynamicFieldName = "Last";
//获取字段的属性
var dynamicProp = typeof(Student).GetProperty(dynamicFieldName);
//获取排序后的结果
var sortedStudents = GetStudents().Select(u => u).OrderBy(u=>dynamicProp.GetValue(u, null));
//显示排序结果
foreach(s item in sortedStudents )
Console.WriteLine(s.First+" "+s.Last);
}
//获得所有学生的资料,放在一个List里
public static List<Student> GetStudents()
{
List<Student> students = new List<Student>
{
new Student {First="Donald ", Last="Trump", ID=1},
new Student {First="Barack", Last="Obama", ID=2},
new Student {First="Bill", Last="Clinton", ID=3}
};
return students;
}
}
//定义Student类
public class Student
{
public string First { get; set; }

本文通过实例讲解如何在C#中利用反射Reflection实现动态字段排序,参考自http://www.jomendez.com/2015/09/28/orderby-argument-as-string-using-linq-c/

470

被折叠的 条评论
为什么被折叠?



