Comparison 的使用
var comparer = new Comparison<Tmx2ESModel>((Tmx2ESModel x, Tmx2ESModel y) =>
{
if (x.RequestGuid == targetGuid && y.RequestGuid == targetGuid)
{
return 0; //不变
}
else if (x.RequestGuid == targetGuid && y.RequestGuid != targetGuid)
{
return -1; //向前排
}
else
{
return 1; //向后排
}
});
排序完之后,按照返回的int值,集合是由小到大排列的。
//一般用StringComparison.Ordinal
//不区分大小写StringComparison.OrdinalIgnoreCase
files.Sort((x,y)=> string.Compare(x.FileName, y.FileName, StringComparison.InvariantCultureIgnoreCase));
两个接口提供的方法返回值都是int类型的,负数代表小于,0代表等于,正数代表大于。
使用无参Sort()时,集合中至少要有一个类实现了IComparable,否则会报错。