我有这样的字符串:
var a = "ABCFE";
有没有简单的方法可以将这个字符串排序为:
ABCEF
谢谢
你可以使用LINQ:
String.Concat(str.OrderBy(c => c))
如果您想要删除重复项,请添加.Distinct()
。可以,将字符串复制到char数组中,对char数组进行排序,然后将其复制回字符串。
static string SortString(string input)
{
char[] characters = input.ToArray();
Array.Sort(characters);
return new string(characters);
}
00:00:00.0000666
,而 Array.Sort 仅需 00:00:00.0000022
。 - Patrick MageeToCharArray()
或ToArray()
,它们的结果相同,但前者可能会提供更好的性能。请参阅https://dev59.com/-loU5IYBdhLWcg3wxIyA。 - Arinnew string (str.OrderBy(c => c).ToArray())
你可以使用这个
string x = "ABCGH"
char[] charX = x.ToCharArray();
Array.Sort(charX);
x = new string(charX);
这将对你的字符串进行排序。
这是另一种方法。您可以使用SortedSet:
var letters = new SortedSet<char> ("ABCFE");
foreach (char c in letters) Console.Write (c); // ABCEF
var sortedString1 = string.Join("", str1.OrderBy(x => x).ToArray());
这将返回一个已排序的字符串
Array.Sort
慢很多。请参考Roy的回答。 - Kellen Stuart