将文本框中的值存储到数组中,然后检查输入的长度以匹配数组的大小
本文关键字:数组 输入 文本 存储 然后 检查 | 更新日期: 2023-09-27 17:51:18
我是c#新手。我一直试图将值输入到文本框中,在窗口窗体上,然后将它们保存在数组中。然后,如果输入数据大于名称的大小,我将尝试显示一条消息。
。用户在文本框中输入自己的姓名。数组的大小可能为[20]
。因此,如果名称超过20个字符,将显示一个警告。
我有这个工作,但不使用数组来检查输入。
string[] name = new string[20];
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
if (textBox1.Text.Length <= 0)
{
MessageBox.Show("empty");
}
else if (textBox1.Text.Length > 20)
{
MessageBox.Show("Too many letters");
}
else
{
}
}
如果您使用的是Net 3.5框架或更高版本
,则可以使用IsNullOrWhiteSpace验证TextBox
是否为字符串或空。 char[] name;
private void button2_Click(object sender, EventArgs e)
{
int countChar = textBox1.Text.Trim().Count();
if (string.IsNullOrWhiteSpace(textBox1.Text)) //if (countChar == 0)
{
MessageBox.Show("empty");
return;
}
if (countChar > 20)
{
MessageBox.Show("You have entered " + countChar.ToString() + " letters, Too many letters");
return;
}
MessageBox.Show("Success");
}
EDIT:我意识到OP想要将TextBox
值存储到数组
var toArray = textBox1.Text.Trim().ToArray();
name = toArray.ToArray();
但是没有使用数组来检查输入。
内部使用array
。String
为char[]
, String.Length
为Char数组长度
string[] name = new string[20];
您不需要string[]
来存储长度为20的string
对于这个任务最好使用list:
List<String> list_string=new List<String>();
添加您需要的项目:
list_string.Add("My String");
List是动态集合,所以你永远不会超出range。
另一种使用String类的方式
字符串是数组的字符,它是动态对象,所以您从未超出范围。
将name
数组更改为char[]
而不是string[]
。这里你说的是你有一个字符串数组;比如20个全名,而不是20个字符的名字。
在if语句中,可以使用数组和文本框作为条件
else if (textBox1.Text.Length > name.Length)
{
MessageBox.Show("Too many letters");
}
还有很多其他的事情是错误的,可以用不同的方式来做,但是为了关注你的问题,我把所有其他不相关的信息都从这个答案中删除了
这样做:
// Global string list
List<string> inputList = new List<string>();
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
if (textBox1.Text.Length <= 0)
{
MessageBox.Show("empty");
}
else if (textBox1.Text.Length > 20)
{
MessageBox.Show("Too many letters");
}
else
{
// Add to list if less than 20 but greater than 0
inputList.Add(textBox1.Text);
}
}