将文本框中的值存储到数组中,然后检查输入的长度以匹配数组的大小

本文关键字:数组 输入 文本 存储 然后 检查 | 更新日期: 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();

但是没有使用数组来检查输入。

内部使用arrayStringchar[], 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);
        }
    }