我只需要每行输入.然后在C#中剪切每个单词空间的每行,但我似乎无法弄清楚2D阵列的工作原理


string[][] Chop = null;
string[] Line = null;

private void button1_Click(object sender, EventArgs e)
{
    Line = textBox1.Text.Split(new string[] { "rn", "n" }, StringSplitOptions.None); // Im succesfull at cutting the input per line and stores it per line in Line variable.
    for(int x = 0;x < Line.Length; x++)
    Chop[][x] = Line[x].Split(' '); 
//I want the Chop to have an array of array of strings.
string[][] lineWords = textBox1.Text
            .Split(new[] { Environment.NewLine }, StringSplitOptions.None)
            .Select(l => l.Split())
            .ToArray();
var lines = from line in text.Split(new [] { 'r', 'n' }, StringSplitOptions.RemoveEmptyEntries)
            select line.Split(new [] {' '}, StringSplitOptions.RemoveEmptyEntries);

lines变量将为IEnumerable<string[]>类型。

如果您需要数组:

var lines = text.Split(new[] { 'r', 'n' }, StringSplitOptions.RemoveEmptyEntries)
                .Select(line => line.Split(new[] { ' ' }, StringSplitOptions.RemoveEmptyEntries))
                .ToArray();

lines将是string[][]

update 也我认为您可以使用 TextBox的属性Lines来逐行获取文本分割:

var chop = textBox1.Lines
                   .Select(line => line.Split(new[] { ' ' }, StringSplitOptions.RemoveEmptyEntries))
                   .ToArray();

尽管我不确定确切的问题是什么,但我确实在代码中看到一个至少与标题有关的问题,因此为什么这是答案,而不是评论。

首先,您使用锯齿状阵列(数组阵列),而不是多维数组。

...通常我会很好地描述锯齿状阵列,但是快速的Google可能会比我更好地解释它们,因此我以此为例:您的最后一行代码应该是

Chop[x] = Line[x].Split(' ');

最新更新