如何在不使用数组

时间:2016-06-15 19:52:17

标签: c# sorting textbox

我刚刚写了一个代码来对文本框进行排序,但我想知道有没有其他方法不需要中间数组?!(只是为了提高性能)

这里是我写的代码:

        string[] textbox = new string[textBox1.Lines.Length];
        textbox = textBox1.Text.Split('\r');
        textBox1.Clear();
        Array.Sort(textbox);
        foreach(string text in textbox)
        {
            textBox1.AppendText(text + "\r\n");
        }

2 个答案:

答案 0 :(得分:1)

您可以直接使用Lines属性(这已经是一个数组)。

 textBox1.Lines = textBox1.Lines.OrderBy(l => l).ToArray();

(注意,无论如何你必须重建Lines数组,因此实际上不可能避免使用数组,它只是在此代码中的OrderBy之后实现)

答案 1 :(得分:0)

使用OrderBy

var s= textBox1.Text.Split('\r').OrderBy(c=>c);
textBox1.Clear();
foreach (string text in s)
{
    textBox1.AppendText(text + "\r\n");
}

您也可以在不使用foreach循环的情况下使用String.Join方法执行此操作:

var s = string.Join("\r\n", textBox1.Text.Split('\r').OrderBy(c => c));
textBox1.Clear();
textBox1.AppendText(s);
相关问题