通过写一个Demo展示C#中多种常用的集合排序方法
2015-05-25 18:16
477 查看
不多说,程序很简单,就是将集合中的数据进行排序,但使用到的知识点还是比较多的,大牛勿喷,谨献给初学者!直接上程序吧!
namespace Demo { /// <summary> /// Demo:使用不同排序方法对元素进行排序 /// </summary> class Program { private static void Main(string[] args) { ArrayList arrayList = Product.GetArrayList(); List<Product> list = Product.GetList(); //1、使用继承IComparer接口的函数来进行排序 arrayList.Sort(new ProductCompare()); foreach (Product product in arrayList) { Console.WriteLine(product.ToString()); } Console.WriteLine("---------------------------"); //2、使用继承IComparer<T>接口的函数来进行排序 list.Sort(new ProductCompareT()); foreach (Product product in list) { Console.WriteLine(product.ToString()); } Console.WriteLine("---------------------------"); //3、使用委托来进行排序 list.Sort(delegate(Product x, Product y) { return x.Price.CompareTo(y.Price); }); foreach (Product product in list) { Console.WriteLine(product.ToString()); } //4、使用Lambda表达式来进行排序; list.Sort((x, y) => x.Price.CompareTo(y.Price)); foreach (Product product in list) { Console.WriteLine(product.ToString()); } //5、使用扩展方法来进行排序 foreach (Product product in list.OrderBy(p=>p.Price)) { Console.WriteLine(product.ToString()); } Console.ReadKey(); } } public class Product { public string Name { get; set; } public decimal Price { get; set; } public static ArrayList GetArrayList() { return new ArrayList() { new Product {Name = "WindowsPhone", Price = 10m}, new Product {Name = "Apple", Price = 20m}, new Product {Name = "Android", Price = 5m} }; } public static List<Product> GetList() { return new List<Product>() { new Product {Name = "WindowsPhone", Price = 10m}, new Product {Name = "Apple", Price = 20m}, new Product {Name = "Android", Price = 5m} }; } public override string ToString() { return String.Format("{0}--{1}", Name, Price); } } /// <summary> /// 使用IComparer对ArrayList进行排序 /// 显示实现Compare接口,常用ArrayList类型的集合来调用 /// </summary> public class ProductCompare : IComparer { public int Compare(object x, object y) { Product first = x as Product; Product second = y as Product; if (first != null && second !=null) { return first.Price.CompareTo(second.Price); } else { return -1; } } } /// <summary> /// 使用IComparer<Product>进行排序 /// 显式实现Compare接口,常用List<T>类型的集合来调用 /// </summary> public class ProductCompareT : IComparer<Product> { public int Compare(Product x, Product y) { Product first = x as Product; Product second = y as Product; if (first != null && second != null) { return first.Price.CompareTo(second.Price); } else { return -1; } } } }
相关文章推荐
- 通过写一个Demo展示C#中多种常用的集合排序方法
- .NET/C#中对自定义对象集合进行自定义排序的方法
- WinCE C#程序,控制启动时仅仅能启动一个程序,使用相互排斥量来实现,该实现方法測试通过
- C#通过正则表达式统计词频的一个方法
- C#中List或其它集合对象排序方法的一点理解
- Java 通过位运算求一个集合的所有子集方法
- GUAVA常用方法总结整理 集合 排序 文件
- c# Array或List有个很实用的ForEach方法,可以直接传入一个方法对集合中元素操作
- scala通过mkString方法把一个集合转化为一个字符串
- .NET/C#中对自定义对象集合进行自定义排序的方法
- EasyDemo*ArrayList集合常用方法(个人总结)
- EasyDemo*Collection集合框架常用方法(个人总结)
- EasyDemo*Map集合框架常用方法(个人总结)
- EasyDemo*Map集合框架常用方法小练习(on Github)
- EasyDemo*Collection集合框架常用方法小练习(on Github)
- scala通过mkString方法把一个集合转化为一个字符串
- scala通过mkString方法把一个集合转化为一个字符串
- 常量,字段,构造方法 调试 ms 源代码 一个C#二维码图片识别的Demo 近期ASP.NET问题汇总及对应的解决办法 c# chart控件柱状图,改变柱子宽度 使用C#创建Windows服务 C#服务端判断客户端socket是否已断开的方法 线程 线程池 Task .NET 单元测试的利剑——模拟框架Moq
- C#中判断一个集合是否是另一个集合的子集的简单方法
- scala通过mkString方法把一个集合转化为一个字符串