鉴于Chararray按字母顺序排序回原始

时间:2018-03-27 13:17:53

标签: c# arrays sorting

我有这段代码:

Console.WriteLine("TextEingabe!");
string eingabe = "Hallo, das ist mein Text";/* Console.ReadLine(); */

char[] ausgabe = eingabe.ToCharArray();

Console.WriteLine(ausgabe[4]);
Console.OutputEncoding = Encoding.Unicode;

Array.Sort(ausgabe, new CharComparer(CultureInfo.GetCultureInfo("lt")));  // Right result using string comparer.
Console.WriteLine(new string(ausgabe));

foreach (char word in ausgabe)
{

}

我按字母顺序对eingabe进行排序,然后使用Console.WriteLine将其显示在屏幕上。然后我使用foreach循环来写出字符。

我预计数组仍然会在foreach循环中显示原始文本。我也尝试使它与索引一起使用,但看起来旧的索引被新的覆盖,这意味着“H”不在[0]位置。

有人可以给我一个例子并解释一下吗?

如果有帮助,这里是CharComparer

readonly CultureInfo culture;

public CharComparer(CultureInfo culture)
{
    this.culture = culture;
}

public int Compare(char x, char y)
{
    return string.Compare(new string(x, 1), 0, new string(y, 1), 0, 1, false, culture);
}

1 个答案:

答案 0 :(得分:0)

您可以在foreach循环中使用eingabe

foreach (char word in eingabe)
{

}

或者,如果您想使用ausgabe数组,只需再次拨打ausgabe = eingabe.ToCharArray();

ausgabe = eingabe.ToCharArray();

foreach (char word in ausgabe)
{

}