排序帮助类(包括对string[],int[],datatable,T[]进行排序) .
来源:互联网 发布:单片机mos管开关电路 编辑:程序博客网 时间:2024/05/19 01:32
- using System;
- using System.Collections.Generic;
- using System.Text;
- using System.Reflection;
- using System.Data;
- namespace Zhuyi.Utility
- {
- /// <summary>
- /// 排序帮助类(包括对string[],int[],datatable,T[]进行排序)
- /// </summary>
- public class SortUtil
- {
- /// <summary>
- /// 对int数组进行排序
- /// </summary>
- /// <param name="list">int数组</param>
- /// <param name="asc">是否按升序排列</param>
- public static void SortInt(int[] list, bool asc)
- {
- int obj;
- int j, k = 1;
- bool done = false;
- int len = list.Length;
- while (k < len && !done)
- {
- done = true;
- for (j = 0; j < len - k; j++)
- {
- int b = list[j].CompareTo(list[j + 1]);
- if ((asc && b > 0) || (!asc && b < 0))
- {
- done = false;
- obj = list[j];
- list[j] = list[j + 1];
- list[j + 1] = obj;
- }
- }
- k++;
- }
- }
- /// <summary>
- /// 对string数组进行排序
- /// </summary>
- /// <param name="list">string数组</param>
- /// <param name="asc">是否按升序排列</param>
- public static void SortString(string[] list, bool asc)
- {
- string obj;
- int j, k = 1;
- bool done = false;
- int len = list.Length;
- while (k < len && !done)
- {
- done = true;
- for (j = 0; j < len - k; j++)
- {
- int b = list[j].CompareTo(list[j + 1]);
- if ((asc && b > 0) || (!asc && b < 0))
- {
- done = false;
- obj = list[j];
- list[j] = list[j + 1];
- list[j + 1] = obj;
- }
- }
- k++;
- }
- }
- /// <summary>
- /// 对datatable进行排序,返回排序后的datatable
- /// </summary>
- /// <param name="dt">要排序的datatable</param>
- /// <param name="order">排序字段</param>
- /// <param name="asc">是否升序</param>
- /// <returns></returns>
- static DataTable SortDataTable(DataTable dt, string order, bool asc)
- {
- DataView view = dt.DefaultView;
- view.Sort = string.Format("{0} {1}", order, (asc ? "asc" : "desc"));
- return view.ToTable();
- /*
- DataRow[] rows = dt.Select("", order + " " + (asc ? "asc" : "desc"));
- DataTable dt2 = dt.Clone();
- foreach (DataRow row in rows)
- dt2.Rows.Add(row.ItemArray);
- dt.Clear();
- return dt2;
- */
- }
- /// <summary>
- /// 对实体类进行排序
- /// </summary>
- /// <typeparam name="T">实体类型,如:User</typeparam>
- /// <param name="list">实体类的数组</param>
- /// <param name="order">排序字段(必须为属性)</param>
- /// <param name="asc">是否按正序排序</param>
- public static void Sort<T>(object[] list, string order, bool asc)
- {
- Type type = typeof(T);
- PropertyInfo[] pros = type.GetProperties();
- PropertyInfo pro = pros[0];
- order = order.ToLower();
- for (int i = 0; i < pros.Length; i++)
- {
- if (pros[i].Name.ToLower().Equals(order))
- {
- pro = pros[i];
- break;
- }
- }
- object obj;
- int j, k = 1;
- bool done = false;
- int len = list.Length;
- while (k < len && !done)
- {
- done = true;
- for (j = 0; j < len - k; j++)
- {
- int b = pro.GetValue(list[j], null).ToString().CompareTo(pro.GetValue(list[j + 1], null).ToString());
- if ((asc && b > 0) || (!asc && b < 0))
- {
- done = false;
- obj = list[j];
- list[j] = list[j + 1];
- list[j + 1] = obj;
- }
- }
- k++;
- }
- }
- }
- }
Zhuyi.Utility:
包括缓存操作、配置文件操作、cookie操作、日期时间操作、文本文件操作、HTML源码解析、图片裁剪/缩放、常用正则验证、加密/解密、http请求、xml读写、对数组的排序
- 排序帮助类(包括对string[],int[],datatable,T[]进行排序)
- 排序帮助类(包括对string[],int[],datatable,T[]进行排序) .
- 对datatable进行排序
- 对DataTable进行排序(sort)
- 对DataTable时的记录进行排序
- 如何对DataTable 进行检索和排序
- 如何对DataTable进行检索和排序
- 如何对DataTable进行检索和排序
- 如何对DataTable进行检索和排序
- 如何对DataTable进行检索和排序
- Java对map进行排序(包括按键和值)
- List<T>集合排序与Dictionary<int,string>排序
- 对int类型的数据进行排序
- c# 对list<t> 进行排序
- 重新对DataTable排序
- 对List<Map<String,Object>>进行排序
- .net 对已有的DataTable进行筛选、排序、分页
- Java:对集合中的对象进行排序需要实现Interface Comparable接口并实现int compareTo(T o)方法
- 数组函数一些-特定功能
- android屏幕大小,字体大小,横屏竖屏切换问题
- ios中NSPredicate的用法
- jsp/java截取截断html内容的方法与技巧
- 真机调试出现问题,无法将应用程序装到设备上
- 排序帮助类(包括对string[],int[],datatable,T[]进行排序) .
- NIO.2 入门,第 2 部分: 文件系统 API
- Android广播(笔记)
- 14条最佳JS代码编写技巧
- 操作XML公共类 .
- java_xml读取写入方法
- Count/Sum of Form记录数合计数
- 内核空间与用户空间的内存映射
- java 之 AOP