资源简介
C# 使用orderby 多字段 动态排序
代码片段和文件信息
using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Linq;
using System.Text;
namespace ConsoleApp6
{
class tmpclass
{
public int a { get; set; }
public int b { get; set; }
}
class Program
{
static void Main(string[] args)
{
List lstclass = new List();
Random rd = new Random();
for (int i = 0; i < 200000; i++) //(var item in lstclass)
{
int tmp = rd.Next(100);
int tmp2 = rd.Next(200);
lstclass.Add(new tmpclass() { a = tmp b = tmp2 });
}
Dictionary dicttmp = new Dictionary();
dicttmp.Add(“b“ SortKind.DESC);
dicttmp.Add(“a“ SortKind.ASC);
Stopwatch sw = new Stopwatch();
sw.Start();
lstclass = QuerySort.Sort(lstclass dicttmp);
sw.Stop();
StringBuilder sb = new StringBuilder();
foreach (var item in lstclass)
{
sb.AppendLine(item.a + “\t“ + item.b);
}
string tmpstr = sb.ToString();
return;
}
}
///
/// 排序方式
///
public enum SortKind
{
///
/// 升序
///
ASC = 0
///
/// 降序
///
DESC
}
///
/// 排序查询
///
public class QuerySort
{
///
/// 将实体对象集合按字段排序
///
/// 实体对象类型
/// 实体对象集合
/// 排序字段
/// 排序方式
/// 排序后的集合
public static List Sort(List list string field SortKind kind)
{
if (list != null)
{
switch (kind)
{
case SortKind.ASC: list = list.OrderBy(t => GetValue(t field)).ToList(); break;
case SortKind.DESC: list = list.OrderByDescending(t => GetValue(t field)).ToList(); break;
}
}
return list;
}
public static List Sort(List list Dictionary dicsort)
{
if (list != null)
{
IOrderedEnumerable tmporderlist = null;
foreach (var item in dicsort)
{
switch (item.Value)
{
case SortKind.ASC:
{
if (tmporderlist == null)
{
tmporderlist = list.OrderBy(t => GetValue(t ite
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 5109 2019-07-01 14:36 Program.cs
相关资源
- C# 调用win32 api函数-user32.dll详细说明
- C# 调用BarTender打印条码DEMO
- 大型比赛竞赛抽签系统 可打印 c# vs
- C#编写的Gerber查看器
- lua C# .Net4.0 vs2010 LuaInterface
- C#十六进制编辑器
- 明华URF-35H读卡器 C#读写源码 为大家
- C#文件流读取CSV文件
- c#读写PDF文件sql
- C# winform Socket大文件传输
- c#车牌识别系统附30张测试图片
- 《C#面向对象程序设计》源代码(CS)
- 金旭亮《C#面向对象程序设计》教案
- 试题库管理系统毕业论文(C#)源程序
- 学校网站原代码(C#.NET)
- C#-数据库操作技术-员工管理系统
- c#web开发入门经典
- C#与Matlab混合编程的几种方式
- c# 开发与 mysql数据库实现的增删改查
- C#异步操作 异步查询数据库 异步处理
- Basler相机通过IO触发源码
- [源代码] 《领域驱动设计 (C# 2008 实
- 松下PLC与C#通讯串口调试入门教程.z
- USB 继电器控制器 LCUS-1 保证能用 c#
- C# AES加密解密小工具
- C#圆形按钮,非常漂亮动态~~
- [精]C#仿QQ右下角弹出提示框()
- C#进程间通信-共享内存代码
- 有史以来最简单的三层(C#)
- vb调用c#编写的串口DLL文件(vb源码
评论
共有 条评论