返回一个字符串,每个索引一行
本文关键字:索引 一行 一个 返回 字符串 | 更新日期: 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);