• 大小: 1KB
    文件类型: .zip
    金币: 2
    下载: 1 次
    发布日期: 2023-04-20
  • 语言: C#
  • 标签: List  C#  动态  排序  多字段  

资源简介

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

评论

共有 条评论