我可以使用Sort或OrderBy对列表进行排序.哪一个更快?两者都在使用相同的算法吗?
List<Person> persons = new List<Person>();
persons.Add(new Person("P005", "Janson"));
persons.Add(new Person("P002", "Aravind"));
persons.Add(new Person("P007", "Kazhal"));
Run Code Online (Sandbox Code Playgroud)
1.
persons.Sort((p1,p2)=>string.Compare(p1.Name,p2.Name,true));
Run Code Online (Sandbox Code Playgroud)
2.
var query = persons.OrderBy(n => n.Name, new NameComparer());
class NameComparer : IComparer<string>
{
public int Compare(string x,string y)
{
return string.Compare(x, y, true);
}
}
Run Code Online (Sandbox Code Playgroud) 为什么是以下代码
Array.Sort(values);
Array.Reverse(values);
Run Code Online (Sandbox Code Playgroud)
与以下相比,按降序排序数组的速度要快得多
Array.Sort(values, (a,b)=>(-a.CompareTo(b)));
Run Code Online (Sandbox Code Playgroud)
代码在调试器外部的发布模式下运行.
为阵列生成降序排序的最有效方法是什么,最好是在一个班轮中?
我有以下数组作为输入以降序排序值:
var cars = ["8587009748118224023Po","8587009748118224023PP","8587009748118224023P,","8587009748118224023P$","8587009748118224023P<","8587009748118224023P?"]
Run Code Online (Sandbox Code Playgroud)
在C#中,我正在使用OrderByDescending并获得以下输出
C#代码:
var rslt= cars.OrderByDescending(a => a);
Run Code Online (Sandbox Code Playgroud)
结果:
8587009748118224023PP,8587009748118224023Po,8587009748118224023P<,8587009748118224023P?,8587009748118224023P,,8587009748118224023P$
Run Code Online (Sandbox Code Playgroud)
在Javascript中,我使用排序和反向并获得以下不同的结果
javascript代码:
cars.sort();
cars.reverse();
Run Code Online (Sandbox Code Playgroud)
结果:
8587009748118224023Po,8587009748118224023PP,8587009748118224023P?,8587009748118224023P<,8587009748118224023P,,8587009748118224023P$
Run Code Online (Sandbox Code Playgroud)
任何人都可以帮我如何在C#中对值进行排序,就像javascript一样?
我有两个名为权重和值的数组。我想根据权重的排序对值进行排序。通过这样做,效果非常好
Array.Sort(Weights,Values);
Run Code Online (Sandbox Code Playgroud)
这给了我按升序排序的数组。我想按降序进行相同的排序。有没有更好的方法不使用
Array.Reverse(Weights) and Array.Reverse(Values)