返回一个字符串,每个索引一行

本文关键字:索引 一行 一个 返回 字符串 | 更新日期: 2023-09-27 17:50:33

多行,textBox1。文本=

RGYR
RGGB
RGRG
RYBG
RYYB
GBRY
RYBG

我希望游戏一次读取一行,但是;

Color[] colourset = newSequence(textBox1.Text.Length);

是作为一个整体读取字符串,没有预料到每隔第四个字符换行,这会把一切都搞砸。

如何使它在多行文本框中每个索引读取一行?

上下文代码:

private Color[] sequence;
//Declare dictionary
private Dictionary<char,Color>  stringTocolor = new Dictionary<char,Color>();
public SimonSays ()
{
    //add content to Dictionary
    stringTocolor.Add('R', Color.Red);
    stringTocolor.Add('G', Color.Green);
    stringTocolor.Add('B', Color.Blue);
    stringTocolor.Add('Y', Color.Yellow);
    Color[] colourset = newSequence(textBox1.Text.Length); //This may be the problem? Reading entire string length instead of just one line at a time??
}
public Color[] newSequence(int length)
{
    Color[] array = new Color[length];
    //check dictionary has the char key or not
    for (int i = 0; i < textBox1.Text.Length; i++)
    {
        if (stringTocolor.ContainsKey(textBox1.Text[i]))
        {
             array[i] = stringTocolor[textBox1.Text[i]];
        }
        //give alert if wrong key
        else
        {
             MessageBox.Show("Wrong Colour input at index " + i + " of textbox string!");
        }
    }
    this.sequence = array;
    return array;
}
public void newSequence (Color [] sequence)
    {
    this.sequence= //read next line of string
    }

返回一个字符串,每个索引一行

你可以通过Lines属性来索引:

 for(int i = 0 ; i < textBox1.Lines.Length; i++)
      Color[] colourset = newSequence(textBox1.Lines[i].Length);

如何使它在多行文本框中每个索引读取一行?

您可以根据EnvironMent.NewLine拆分字符串,然后在循环中使用index获取所需的项。

试试这个:

var lines = textBox1.Text.Split(new [] {Environment.NewLine},
                                        StringSplitOptions.RemoveEmptyEntries);

我做到了,结果就是这样。

Color[] colourset = newSequence(textBox1.Lines[0].Length);