ruby中数组的sort_by排序方法使用

Python013

ruby中数组的sort_by排序方法使用,第1张

数组

array = [[1],[2],[3],[0],[1,2],[1,0],[0,1]]

希望排序整个数组,先按照数组 元素个数 ,如果个数相同再 按照首个元素大小

array.sort_by {|a| [a.size, a[0]] }

C#是不? 把数组放入list 然后反转一下就行了 。。。代码如下

public static void Main(string[] args)

{

try

{

string[] myArray = new string[] { "Kinger", "Norman", "Mark", "Ruby" }

Sort(ref myArray)

foreach (string str in myArray)

{

Console.Write(str + " ")

}

}

catch (Exception ex)

{

Console.WriteLine(ex.ToString())

}

}

private static void Sort(ref string[] myArray)

{

List<string>list = new List<string>()

foreach (string temp in myArray)

{

list.Add(temp)

}

list.Reverse() //将list 反转

myArray = list.ToArray()

}

以后有问题可以去 stackoverflow上面搜。这里有个 提问,与你的类似。

xs = [1, 3, 2, 4]

original_indexes = xs.map.with_index.sort.map(&:last)

#=> [0, 2, 1, 3]

我解释下:

1)with_index  之后产生一个 二维数组的迭代器 [ [xs[0], 0], [xs[1], 1], [xs[2], 2] ... ]

2)sort 函数应用在二维数组中时,似乎是按照第一个元素进行排序

3)排序之后的二维数组,取出每个数组的last就是索引值,由于这时候已经排过序,所以就是希望的答案了。