简单数值排序(转):
List.Sort有三种结果 1,-1,0分别是大,小,相等
升序降序比较,默认List的排序是升序排序
如果要降序排序,也很简单,只需要在前面加一个负号
List<int> tmp = new List<int>(){5,1,22,11,4};
// 升序
tmp.Sort((x, y) => x.CompareTo(y));
// 降序
tmp.Sort((x, y) => -x.CompareTo(y));
Console.WriteLine(tmp);
// 22,11,5,4,1
public class People
{
public string name { get; set; }
public double CPU { get; set; }
public double Memory { get; set; }
public DateTime DTime { get; set; }//时间
public string GetStateStr()
{
string all = name + "CPU:" + CPU.ToString("0.##")+ "内存:" + Memory.ToString("0.##");
return all;
}
}
示例:
static void Main(string[] args)
{
List<People> ss = new List<People> { };
ss.Add(new People() { name = "aa", CPU = 12, Memory = 6,DTime = new DateTime(2007, 1, 1, 21, 21, 21) });
ss.Add(new People() { name = "bb", CPU = 34, Memory = 1,DTime = new DateTime(2007, 1, 1, 21, 22, 21) });
ss.Add(new People() { name = "cc", CPU = 61, Memory = 3,DTime = new DateTime(2007, 1, 1, 21, 21, 21) });
ss.Sort((x, y) => y.Memory.CompareTo(x.Memory));//Memory字段升序排列
//ss.Sort((x, y) => x.Memory.CompareTo(y.Memory));//降序排列
ss.Sort((x, y) => DateTime.Compare(x.DTime, y.DTime));//时间排序
foreach (People item in ss)
{
Console.WriteLine(item.GetStateStr());
}
}
打印:
aa:CPU:12MB 内存:6MB
cc:CPU:61MB 内存:3MB
bb:CPU:34MB 内存:1MB