【发布时间】:2011-02-04 23:21:57
【问题描述】:
可能重复:
Dynamic LINQ OrderBy
嗨,
我有一个数据类的IEnumerable。我想根据用户选择对这个集合进行排序。我如何编写一个通用函数来对字段名称进行排序并返回 IEnumerable.OrderBy(f => f.fieldName) 行?
【问题讨论】:
标签: c# linq sorting ienumerable
可能重复:
Dynamic LINQ OrderBy
嗨,
我有一个数据类的IEnumerable。我想根据用户选择对这个集合进行排序。我如何编写一个通用函数来对字段名称进行排序并返回 IEnumerable.OrderBy(f => f.fieldName) 行?
【问题讨论】:
标签: c# linq sorting ienumerable
您可以轻松实现这一目标。假设我们有一个名为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;
}
【讨论】: