不多說,程序很簡單,就是將集合中的數(shù)據(jù)進行排序,但使用到的知識點還是比較多的,大牛勿噴,謹獻給初學者!直接上程序吧!
namespace Demo{ /// <summary> /// Demo:使用不同排序方法對元素進行排序 /// </summary> class PRogram { private static void Main(string[] args) { ArrayList arrayList = Product.GetArrayList(); List<Product> list = Product.GetList(); //1、使用繼承IComparer接口的函數(shù)來進行排序 arrayList.Sort(new ProductCompare()); foreach (Product product in arrayList) { Console.WriteLine(product.ToString()); } Console.WriteLine("---------------------------"); //2、使用繼承IComparer<T>接口的函數(shù)來進行排序 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進行排序 /// 顯示實現(xiàn)Compare接口,常用ArrayList類型的集合來調(diào)用 /// </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>進行排序 /// 顯式實現(xiàn)Compare接口,常用List<T>類型的集合來調(diào)用 /// </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; } } }}新聞熱點
疑難解答