如何使用List <string> .Sort按长度排序字符串?

Col*_*nic 1 .net c# sorting

我想根据它们的长度对字符串列表进行排序

var weasleys = new List<string>{"Bill", "Charlie", "Percy", "Fred", "George", "Ron", "Ginny"};
Run Code Online (Sandbox Code Playgroud)

我知道如何做到这一点OrderBy.

weasleys.OrderBy(x => x.Length)
Run Code Online (Sandbox Code Playgroud)

但我想知道它是如何做到的List<T>.Sort.怎么样?

Chr*_*air 5

有一个代表需要的Sort(Comparison<T>)重载Comparison<T>.有了它,您可以CompareTo在相应的Length值上使用该方法:

weasleys.Sort((x, y) => x.Length.CompareTo(y.Length));
Run Code Online (Sandbox Code Playgroud)

请注意,与LINQ OrderBy方法不同,如果这是您的意图,Sort将会weasleys就地更改您的列表.