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);