【发布时间】:2011-09-20 11:01:21
【问题描述】:
我有这样的字符串:
var a = "ABCFE";
有没有一种简单的方法可以将此字符串排序为:
ABCEF
谢谢
【问题讨论】:
我有这样的字符串:
var a = "ABCFE";
有没有一种简单的方法可以将此字符串排序为:
ABCEF
谢谢
【问题讨论】:
您可以使用 LINQ:
String.Concat(str.OrderBy(c => c))
如果要删除重复项,请添加.Distinct()。
【讨论】:
Array.Sort慢。请参阅 Roy 的回答。
是的;将字符串复制到 char 数组,对 char 数组进行排序,然后将其复制回字符串。
static string SortString(string input)
{
char[] characters = input.ToArray();
Array.Sort(characters);
return new string(characters);
}
【讨论】:
OrderBy 快大约 3 倍。
00:00:00.0000022 相比,使用 OrderBy 对“patrick”进行排序需要 00:00:00.0000666
ToCharArray() 或 ToArray() 获得相同的结果,但前者可能会提供更好的性能。见stackoverflow.com/questions/37139053/…
new string (str.OrderBy(c => c).ToArray())
【讨论】:
你可以用这个
string x = "ABCGH"
char[] charX = x.ToCharArray();
Array.Sort(charX);
这将对您的字符串进行排序。
【讨论】:
这是另一个。你可以使用SortedSet:
var letters = new SortedSet<char> ("ABCFE");
foreach (char c in letters) Console.Write (c); // ABCEF
【讨论】: