Arrays Array.Sort(Array,comparison<;t>;)是如何执行的?
我想对数字进行排序,可以使用字符串数组。经过一些查找,下面的内容很有用Arrays Array.Sort(Array,comparison<;t>;)是如何执行的?,arrays,sorting,delegates,Arrays,Sorting,Delegates,我想对数字进行排序,可以使用字符串数组。经过一些查找,下面的内容很有用 Array.Sort<T> Method (T[], Comparison<T>) 比较函数是否覆盖排序方法实现 或者在Sort方法完成或执行后调用“n”次 它将用传递的委托函数替换某些函数“x” 排序时,比较方法将用于比较元素。排序算法将按原样工作(插入排序或快速排序)。这是您可能需要的自定义比较 我们在哪里得到我们在 比较函数 将根据迭代在排序算法中选取要比较的两个值 例如,请参阅。想想这些人,
Array.Sort<T> Method (T[], Comparison<T>)
比较函数是否覆盖排序方法实现
或者在Sort方法完成或执行后调用“n”次
它将用传递的委托函数替换某些函数“x”
排序时,比较方法将用于比较元素。排序算法将按原样工作(插入排序或快速排序)。这是您可能需要的自定义比较
我们在哪里得到我们在
比较函数
将根据迭代在排序算法中选取要比较的两个值
例如,请参阅。想想这些人,你可以按姓名对他们进行比较:
public class Person
{
string name;
public static int CompareByName(Person person1, Person person2)
{
return String.Compare(person1.Name, person2.Name);
}
}
方法CompareByName(Person-person1,Person-person2)
符合comparation
的定义,因为该定义是“表示比较相同类型的两个对象的方法。”
现在,考虑到所有这些,您可以按姓名对一个person数组进行排序,因为在方法array.sort method(T[]中, 比较)
您可以将T
类型的每次出现都替换为Person
类型,结果如下:
Array.Sort<Person> Method (T[], Comparison<Person>)
你可以做:
Array.Sort(people, Person.CompareByName);
就这样……:)
Person[] people = {p1,p2,p3...} (where p1,p2,p3... are `Person` type)
Array.Sort(people, Person.CompareByName);