使用linq排序,想改进下,求指教
/// <summary>
/// 对数据源进行排序
/// </summary>
/// <param name="pStudentInfoList">需要排序的数据源</param>
/// <param name="pSortExpression">排序字段</param>
/// <param name="pSortDeriction">排序的方向</param>
/// <returns>StudentInfo类型的list</returns>
public static List<StudentInfo> GetListSorted(List<StudentInfo> pStudentInfoList, SortKeys pSortExpression, SortDeriction pSortDeriction)
{
List<StudentInfo> ds = new List<StudentInfo>();
if (pSortDeriction == SortDeriction.DESC)
{
switch (pSortExpression)
{
case SortKeys.StudentId:
ds = pStudentInfoList.OrderByDescending(studentinfo => studentinfo.StudentId).ToList<StudentInfo>();
break;
case SortKeys.StudentName:
ds = pStudentInfoList.OrderByDescending(studentinfo => studentinfo.StudentName).ToList();
break;
case SortKeys.Birthday:
ds = pStudentInfoList.OrderByDescending(studentinfo => studentinfo.Birthday).ToList();
break;
case SortKeys.Sex:
ds = pStudentInfoList.OrderByDescending(studentinfo => studentinfo.Sex).ToList();
break;
}
}
else if (pSortDeriction == SortDeriction.ASC)
{
switch (pSortExpression)
{
case SortKeys.StudentId:
ds = pStudentInfoList.OrderBy(studentinfo => studentinfo.StudentId).ToList<StudentInfo>();
break;
case SortKeys.StudentName:
ds = pStudentInfoList.OrderBy(studentinfo => studentinfo.StudentName).ToList();
break;
case SortKeys.Birthday:
ds = pStudentInfoList.OrderBy(studentinfo => studentinfo.Birthday).ToList();
break;
case SortKeys.Sex:
ds = pStudentInfoList.OrderBy(studentinfo => studentinfo.Sex).ToList();
break;
}
}
else
{
}
return ds;
}
这里的sortExpression是排序的字段,封装成了一个枚举
使用了额linq排序,但是还是使用了分支语句和判断语句
想让该方法更加通用,打算从 ds = pStudentInfoList.OrderByDescending(studentinfo => studentinfo.Sex).ToList();
里面的条件表达式入手,请问这样可行吗,如果可行,按个匿名函数该使用什么手段去传入参数,或者使用显式定义的函数可以吗??
...全文
相关推荐
C#使用linq对数组进行筛选排序的方法
本篇文章将详细探讨如何使用LINQ对数组进行筛选和排序,这对于理解和提升C#开发效率至关重要。首先,我们要了解LINQ的基本语法结构。
C#中使用LINQ对动态列表进行排序的实践指南
语言集成查询(LINQ)是.NET框架的一部分,它提供了一种统一的方法来查询不同来源的数据,包括内存中的对象(如C#中的集合)以及数据库(如SQL Server或XML文档)。LINQ通过引入一组新的方法扩展了C#语言,使得开发者可以使用标准的查询操作符以声明性方式对数据进行查询。LINQ的组成包括以下几个关键部分:查询表达式:LINQ引入了一种新的表达式形式,称为查询表达式,它基于C#语言的查询语法。标准查询操作符。
.net linq动态组合查询条件及排序
如果需要根据多个字段进行排序,可以使用`ThenBy()`或`ThenByDescending()`。
Linq排序
**性能考虑** 虽然Linq提供了简洁的语法,但在大量数据的排序中,直接使用`Array.Sort()`或`List<T>.Sort()`方法可能会更高效。
Linq中GroupBy方法的使用总结.
Linq中GroupBy方法的使用总结Linq 中的 GroupBy 方法是对数据进行分组的操作,通常用于对一个或多个字段进行分组,求其总和、均值等。


LINQ
