zoukankan      html  css  js  c++  java
  • msdn List sort排序 IComparable 用法

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;

    namespace ConsoleApplication5
    {
    class Program
    {
    static void Main(string[] args)
    {
    List<PermCategory> list = new List<PermCategory>();
    list.Add(new PermCategory { CateId = 1, Name = "ad5", Perm = 1, Summary = "ada5" });
    list.Add(new PermCategory { CateId=1,Name="ad",Perm=1,Summary="ada"});
    list.Add(new PermCategory { CateId = 1, Name = "ad4", Perm = 1, Summary = "ada4" });
    list.Add(new PermCategory { CateId = 2, Name = "a1d", Perm = 2, Summary = "a1da" });
    list.Add(new PermCategory { CateId = 2, Name = "ad", Perm = 2, Summary = "ada" });
    Console.WriteLine("排序前");
    test(list);

    list.Sort((x, y) => {
    int result = 0;

    // result -1小到大 ,  1大到小
    #region A:perm 小到大,name 长度 小到大
    //if (x.Perm < y.Perm)
    //{
    // result = -1;
    //}
    //if (x.Perm < y.Perm || x.Name.Length < y.Name.Length)
    //{
    // result = -1;
    //}
    #endregion
    #region A:perm 小到大,name 长度 小到大
    //if (x.Perm < y.Perm)
    //{
    // result = -1;
    //}
    //if (x.Perm == y.Perm && x.Name.Length < y.Name.Length)
    //{
    // result = -1;
    //}
    #endregion

    #region A:perm 小到大,name 长度 大到小
    if (x.Perm < y.Perm)
    {
    result = -1;
    }
    if (x.Perm == y.Perm && x.Name.Length > y.Name.Length)
    {
    result = -1;
    }
    #endregion
    return result;
    });
    Console.WriteLine("---------------------");
    test(list);
    Console.WriteLine("排序后");
    Console.ReadLine();

    }
    static void test(List<PermCategory> list) {
    foreach (var item in list)
    {
    Console.WriteLine(string.Format("perm:{0},name:{1}",item.Perm,item.Name));
    }
    }
    }
    public class PermCategory //: IJsonlizable
    {
    // public PermCategory();

    public int CateId { get; set; }

    public string Name { get; set; }
    public int Perm { get; set; }

    public string Summary { get; set; }

    // public string Jsonlize();
    }
    }

    http://www.cnblogs.com/dj1232090/p/5844991.html

  • 相关阅读:
    网线
    第19次实验
    矩阵乘法
    20次试验
    视频笔记
    1
    effective C++ 条款 34:区分接口继承和实现继承
    effective C++ 条款 35:考虑virtual函数以外的其他选择
    effective C++ 条款 29:为“异常安全”而努力是值得的
    effective C++ 条款 27:尽量少做转型动作
  • 原文地址:https://www.cnblogs.com/window5549-accp/p/6951923.html
Copyright © 2011-2022 走看看