2011-02-04 220 views
0

可能重复:
Dynamic LINQ OrderBy创建orderBy参数动态

嗨, 我有一个数据类的IEnumerable。我想根据用户选择对这个集合进行排序。我如何编写一个通用函数,将字段名称排序&将返回一些行IEnumerable.OrderBy(f => f.fieldName)

回答

0

您可以轻松地做到这一点。让我们假设我们有一个对象(类)称为Item为:

public class Item 
{ 
    public string Name { get; set; } 
    public string Description { get; set; } 
    public string Name2 { get; set; } 
} 

和这个一样

IOrderedEnumerable<Item> orderedItems; 
switch (selection) 
{ 
    case 1: 
     orderedItems = items.OrderBy(i => i.Name); 
     break; 
    case 2: 
     orderedItems = items.OrderBy(i => i.Description); 
     break; 
    default: 
     orderedItems = items.OrderBy(i => i.Name2); 
     break; 
} 
+3

使用switch状况的数据收集

var items = new List<Item> { new Item {Name = "Test 1", Description = "Description 1"}, new Item {Name = "Test 2", Description = "Description 2"} }; 

的一例该解决方案是demonstrably而不是OP要求的。 – 2011-02-04 23:46:39