using System;
using System.Linq;
public class Test
{
public static int count;
public static string GetKey(string t) {
Test.count++;
return t.ToLower();
}
public static void Main() {
var unsorted = Enumerable
.Repeat(0, 10000)
.
Select(i
=> rand.
Next(-100000, 100000).
ToString()) .ToArray();
//var unsorted = new string[] { "the", "Schwartzian", "Transform", "rocks"};
var sorted = unsorted
.OrderBy(Test.GetKey)
.ToArray();
Console.WriteLine(sorted);
Console.WriteLine(Test.count);
}
}
dXNpbmcgU3lzdGVtOwp1c2luZyBTeXN0ZW0uTGlucTsKCnB1YmxpYyBjbGFzcyBUZXN0CnsKICBwdWJsaWMgc3RhdGljIGludCBjb3VudDsKICBwdWJsaWMgc3RhdGljIHN0cmluZyBHZXRLZXkoc3RyaW5nIHQpIHsKICAgIFRlc3QuY291bnQrKzsKICAgIHJldHVybiB0LlRvTG93ZXIoKTsKICB9CiAgcHVibGljIHN0YXRpYyB2b2lkIE1haW4oKSB7CiAgICB2YXIgcmFuZCA9IG5ldyBSYW5kb20oKTsKICAgIHZhciB1bnNvcnRlZCA9IEVudW1lcmFibGUKICAgICAgLlJlcGVhdCgwLCAxMDAwMCkKICAgICAgLlNlbGVjdChpID0+IHJhbmQuTmV4dCgtMTAwMDAwLCAxMDAwMDApLlRvU3RyaW5nKCkpCiAgICAgIC5Ub0FycmF5KCk7CiAgICAvL3ZhciB1bnNvcnRlZCA9IG5ldyBzdHJpbmdbXSB7ICJ0aGUiLCAiU2Nod2FydHppYW4iLCAiVHJhbnNmb3JtIiwgInJvY2tzIn07CiAgICB2YXIgc29ydGVkID0gdW5zb3J0ZWQKICAgICAgLk9yZGVyQnkoVGVzdC5HZXRLZXkpCiAgICAgIC5Ub0FycmF5KCk7CiAgICBDb25zb2xlLldyaXRlTGluZShzb3J0ZWQpOwogICAgQ29uc29sZS5Xcml0ZUxpbmUoVGVzdC5jb3VudCk7CiAgfQp9