動態linq
public static Func<T,Tkey> DynamicLambda<T, Tkey>(string propertyName) { ParameterExpression p = Expression.Parameter(typeof(T), "p"); Expression body = Expression.Property(p, typeof(T).GetProperty(propertyName)); var lambda = Expression.Lambda<Func<T, Tkey>>(body, p); return lambda.Compile(); }
應用:
List<Employee> list = new List<Employee>(); list.Add(new Employee() { Name = "張三", Age = 21, Salary = 1800f, Job = "UI" }); list.Add(new Employee() { Name = "李四", Age = 25, Salary = 2000f, Job = "DBA" }); list.Add(new Employee() { Name = "王五", Age = 24, Salary = 2000f, Job = "UI" }); list.Add(new Employee() { Name = "李九", Age = 31, Salary = 2900f, Job = "DBA" }); list.Add(new Employee() { Name = "張一", Age = 21, Salary = 2100f, Job = "UI" }); list.Add(new Employee() { Name = "王三", Age = 32, Salary = 2100f, Job = "DBA" }); //按Age排序 list.OrderBy(DynamicLambda<Employee,int>("Age")); //按Salary排序 // list.OrderBy(DynamicLambda<Employee,float>("Salary")); list.ForEach(e => Console.WriteLine(e.Name + "\t" + e.Age + "\t" + e.Salary));
相關文章
- Linq to Sql : 動態構造Expression進行動態查詢SQLExpress
- Linq之動態排序(字元傳入)排序字元
- linq to sql的多條件動態查詢SQL
- [C#.NET 拾遺補漏]13:動態構建LINQ查詢表示式C#
- LINQ系列:LINQ to XML操作XML
- LINQ系列:LINQ to XML查詢XML
- LINQ系列:LINQ to SQL Take/SkipSQL
- LINQ系列:LINQ to DataSet的DataTable操作
- LINQ系列:LINQ to DataSet的DataView操作View
- LINQ系列:LINQ to SQL Where條件SQL
- LINQ系列:LINQ to SQL Concat/UnionSQL
- LINQ系列:LINQ to SQL Join連線SQL
- LINQ系列:Linq to Object投影操作符Object
- LINQ系列:Linq to Object限制操作符Object
- LINQ系列:Linq to Object排序操作符Object排序
- LINQ系列:Linq to Object聚合操作符Object
- LINQ系列:Linq to Object集合操作符Object
- LINQ系列:Linq to Object生成操作符Object
- LINQ系列:Linq to Object元素操作符Object
- LINQ系列:Linq to Object相等操作符Object
- LINQ系列:LINQ to SQL Select查詢SQL
- LINQ to SQLSQL
- LINQ系列:Linq to Object聯接操作符Object
- LINQ系列:Linq to Object分組操作符Object
- LINQ系列:Linq to Object串聯操作符Object
- LINQ系列:Linq to Object轉換操作符Object
- LINQ系列:Linq to Object量詞操作符Object
- LINQ系列:Linq to Object分割槽操作符Object
- LINQ系列:LINQ to SQL Transact-SQL函式SQL函式
- LINQ系列:LINQ to SQL Group by/Having分組SQL
- LINQ系列:C#中與LINQ相關特性C#
- LINQ系列:LINQ to SQL Exists/In/Any/All/ContainsSQLAI
- LINQ to SQL 中可以使用的LINQ函式SQL函式
- linQ基礎
- Linq 集合操作
- LINQ to SQL收藏SQL
- Linq to SQL 上篇SQL
- [go-linq]-Go的.NET LINQ式查詢方法Go