可能重复:
Dynamic LINQ OrderBy
您好,
我有IEnumerable
个数据类。我想根据用户选择对此集合进行排序。如何编写一个通用函数,它将对字段名称进行排序&会返回第IEnumerable.OrderBy(f => f.fieldName)
行吗?
答案 0 :(得分:2)
答案 1 :(得分:0)
您可以轻松实现这一目标。假设我们有一个名为Item
的对象(类):
public class Item
{
public string Name { get; set; }
public string Description { get; set; }
public string Name2 { get; set; }
}
这是数据收集的一个例子
var items = new List<Item>
{
new Item {Name = "Test 1", Description = "Description 1"},
new Item {Name = "Test 2", Description = "Description 2"}
};
使用switch
条件,如
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;
}