SortedList类中的数据如何按我自定义地排序

      初始化 SortedList<TKey, TValue> 类的新实例,该实例为空且具有指定的初始容量,并使用指定的 IComparer<T>

 

命名空间:  System.Collections.Generic
程序集:  System(在 System.dll 中)

 

public SortedList( int capacity, IComparer<TKey> comparer )

参数讲解:

capacity
类型: System .Int32
SortedList<TKey, TValue> 可包含的初始元素数。
comparer
类型: System.Collections.Generic .IComparer < TKey >
IComparer<T> 实现,对键进行比较时使用。
- 或 -
null,则为这类键使用默认的 Comparer<T>

      要让SortedList中的数据按我想要地去排序,就要自己定义一个IComparer类,并重载当中的public int Compare(object x,object y)方法。

实例:

using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Collections; namespace TestSortedList { class Program { static void Main(string[] args) { SortedList st = new SortedList(new MyComparer()); st["zhujiadun"] = 24; st["wade"] = 3; st["jordan"] = 23; st["a"] = 12; foreach(DictionaryEntry element in st) { string name = (string)element.Key; int age = (int)element.Value; Console.WriteLine("Name:{0}/t Age:{1}",name,age); } Console.ReadLine(); } class MyComparer : IComparer { public int Compare(object x,object y) { int flag = 2; string sx = (string)x; string sy = (string)y; int slx = sx.Length; int sly = sy.Length; if(slx>sly){ flag = 1; } else if (slx > sly) { flag = 0; } else if (slx < sly) { flag = -1; } return flag; } } } }

运行结果:

你可能感兴趣的:(String,object,null,System,Class)