List排序的两种简便方式

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace ListSort
{
    class Program
    {
        static void Main(string[] args)
        {
            List<Customer> listCustomer = new List<Customer>();
            listCustomer.Add(new Customer { name = "客户1", id = 0 });
            listCustomer.Add(new Customer { name = "客户2", id = 1 });
            listCustomer.Add(new Customer { name = "客户3", id = 5 });
            listCustomer.Add(new Customer { name = "客户4", id = 3 });
            listCustomer.Add(new Customer { name = "客户5", id = 4 });
            listCustomer.Add(new Customer { name = "客户6", id = 5 });
            ///升序
            List<Customer> listCustomer1 = listCustomer.OrderBy(s => s.id).ToList<Customer>();
            //降序
            List<Customer> listCustomer2 = listCustomer.OrderByDescending(s => s.id).ToList<Customer>();
            //Linq排序方式
            List<Customer> listCustomer3 = (from c in listCustomer
                                            orderby c.id descending //ascending
                                            select c).ToList<Customer>();
            Console.WriteLine("List.OrderBy方法升序排序");
            foreach (Customer customer in listCustomer1)
            {
                Console.WriteLine(customer.name);
            }
            Console.WriteLine("List.OrderByDescending方法降序排序");
            foreach (Customer customer in listCustomer2)
            {
                Console.WriteLine(customer.name);
            }
            Console.WriteLine("Linq方法降序排序");
            foreach (Customer customer in listCustomer3)
            {
                Console.WriteLine(customer.name);
            }
            Console.ReadKey();
        }
    }
    class Customer
    {
        public int id { get; set; }
        public string name { get; set; }
    }
}
时间: 2024-10-26 09:30:22

List排序的两种简便方式的相关文章

算法整理(二)---高速排序的两种实现方式:双边扫描和单边扫描

首先简单谈下高速排序的特点,时间复杂度O(nLog n),最差时间复杂度O(n^2),平均时间O(nLog n).由于用到了函数栈,空间复杂度为O(lg n),最差为O(n).是一种不稳定的排序方法.基本思想是分治法,这位大大的http://blog.csdn.net/morewindows/article/details/6684558 讲的很清楚了,分治法+挖坑法,我就不多说了.就是以某个数为參照,使得左边的都小于他,右边的数都大于他.然后对他的左右两个区间採取相同的方法进行递归. 就其总体

Java HashMap按key排序和按value排序的两种简便方法

HashMap的储存是没有顺序的,而是按照key的HashCode实现.key=手机品牌,value=价格,这里以这个例子实现按名称排序和按价格排序. Map phone=new HashMap(); phone.put("Apple",8899); phone.put("SAMSUNG",7000); phone.put("Meizu",2698); phone.put("Xiaomi",1800); System.out.

jqGrid排序的两种实现方式:

原创lnst 实现方案一客户端实现排序: jqGrid属性 loadonce:true时,所有数据加载在客户端,点击列标题由jqGrid在客户端自动排序,不再从服务器取值. 参考文件:ccMxCxTjCc.js js设定: jqGrid的设定: colModel: [ { ..... name: 'zykj', sortable: true, },...... }], ......loadonce:true, //一次加载全部数据到客户端,由客户端进行排序. sortable: true, so

冒泡排序及两种优化方式

冒泡排序是最常用的小型数据排序方式,下面是用C语言实现的,及其两种优化方式. 第一种优化方式是设置一个标记位来标记是否发生了交换,如果没有发生交换就提前结束: 第二种优化方式是记录最后放生交换的位置,作为下一趟比较结束的位置. #include <stdio.h> /* * 打印数组 * */ void printArray(int arr[], int n) { int i = 0; for (i = 0; i < n; ++i) { printf("%d ", a

Map集合的两种遍历方式

Map集合:即 接口Map<K,V> map集合的两种取出方式:    1.Set<k> keyset: 将map中所有的键存入到set集合(即将所有的key值存入到set中), 因为Set具备迭代器,可以进行迭代遍历. 所有可以迭代方式取出所有的链,再根据get方法.获取每一个键对应的值. Map 集合的取出原理: 将map集合转成set集合. 再通过迭代器取出    2. set<Map.Entry<k,v>>  entrySet: 将map集合中的映射

ZZUOJ 1199 大小关系(拓扑排序,两种方法_判断入度和dfs回路判断)

1 /* 2 这道题如果按照度为0的节点来判断的时候,将度为0的节点和其相连的节点(度数并减去1) 3 从图中去掉,如果度为0的节点的个数为0个但是图中的节点没有都去掉的 时候那么说明 4 出现了回路!用这种方法必须将重边去除掉! 5 6 所以推荐用dfs方式进行判断!这种方式还是比较直观的! 7 */ 8 #include<iostream> 9 #include<cstring> 10 #include<cstdio> 11 #include<algorith

多因子排序的一种实现方式

给列表排序的时候偶尔会需要实现多因子排序.例如,有个UI将会显示物品,而这些物品需要按照一定规律排序,规则由以下几个因子决定,因子的重要性由低到高分别是:物品的价格,等级高低,可穿戴等级高低. 这意味着,排序的时候如果两个物品价格相同,则需要考虑等级,而如果等级也相同,则需要考虑穿戴等级. 新手会写使用一堆if来实现,而本席年轻的时候想到了一种更好的实现方式,如下: w0,w1为两个排序物品的权重,将多个因子归纳成两个权重比较,类似于位图,一个因子占一个bit,越重要的因子越靠高位,一个bit就

算法整理(二)---快速排序的两种实现方式:双边扫描和单边扫描

首先简单谈下快速排序的特点,时间复杂度O(nLog n),最差时间复杂度O(n^2),平均时间O(nLog n).因为用到了函数栈,空间复杂度为O(lg n),最差为O(n).是一种不稳定的排序方法.基本思想是分治法,这位大大的http://blog.csdn.net/morewindows/article/details/6684558 讲的非常清楚了,分治法+挖坑法,我就不多说了.就是以某个数为参照,使得左边的都小于他,右边的数都大于他.然后对他的左右两个区间采取同样的方法进行递归. 就其整

冒泡排序的两种实现方式

冒泡排序是算法中比较重要的知识点,也是程序员必备的知识点. 有两种实现方式: 第一种是两层循环的实现方式: 1:双层for循环嵌套: 2.判断条件如果满足,交换两数位置: public static void main(String[] args) { int[] arr = new int[]{3,1,2,5,6}; // 定义数组 int[] arr = {3,1,2,5,6}; // 或者使用这样定义数组的方式 for(int i= 0; i < arr.length; i++){ //第