資源簡介
C# 使用orderby 多字段 動(dòng)態(tài)排序

代碼片段和文件信息
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
????{
????????///?
????????///?將實(shí)體對(duì)象集合按字段排序
????????///?
????????///?實(shí)體對(duì)象類型
????????///?實(shí)體對(duì)象集合
????????///?排序字段
????????///?排序方式
????????///?排序后的集合
????????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
?屬性????????????大小?????日期????時(shí)間???名稱
-----------?---------??----------?-----??----
?????文件????????5109??2019-07-01?14:36??Program.cs
評(píng)論
共有 條評(píng)論