我有一个名称、日期、类别作为参数的集合。我想根据动态变化的三个输入顺序对列表进行排序。例如:在一种情况下,我必须分别对订单日期、名称、类别进行排序。在另一种情况下,顺序是名称、日期和类别。所以我可以拥有所有的排列和组合。有人可以帮助我用一种通用的方式来实现它。
问问题
1150 次
3 回答
1
LINQ 已经允许您通过在 OrderBy 之后添加Queryable.ThenBy、QueryableThenByDescending、Enumerable.ThenBy或Enumerable.ThenByDescending函数来使用多个字段进行排序。
检查LINQ 中的 Multiple “order by” 以获得类似的问题和讨论。
顺便说一句,如果您需要 Enumerable 未提供的罕见方法,则只需在其上调用AsQueryable即可将 Enumerable 转换为 Queryable 。
于 2013-09-24T06:49:36.633 回答
0
我还在这里找到了他可能喜欢的东西:http: //www.codeproject.com/Articles/27834/Generic-List-Sort-Function <--希望它有帮助,它按任何输入属性排序。该属性是通过反射获得的。
于 2013-09-24T06:45:50.710 回答
0
这是一个例子
// Just to get IOrderedEnumerable from the collection
// And set the default order
var orderedItems = context.Items.OrderBy(i => i.Name);
var orderByString = txtOrderBy.Text.ToLower();
switch(orderByString)
{
case "category":
orderedItems = orderedItems.OrderBy(i => i.Category);
break;
case "date":
orderedItems = orderedItems.OrderBy(i => i.Date);
break;
default:
break;
}
于 2013-09-24T06:52:16.727 回答