【问题标题】:Add a string from a textbox to an array将文本框中的字符串添加到数组
【发布时间】:2019-12-17 16:00:32
【问题描述】:

我想将文本框中的字符串添加到数组中,但是当我尝试将其添加到数组时出现错误(无法将 char[] 转换为字符串 []) 我做错了什么,这可能是更好的方法吗?

    public string[] users = { "username" };
    public string[] passwords = { "password" };

    string[] users = textBox1.Text.ToArray();
    string[] passwords= textBox2.Text.ToArray();

【问题讨论】:

  • 看起来你正在尝试string[] user = { textBox1.Text };,但为什么呢?
  • 为什么要为单个字符串声明字符串数组?您可能应该将您的 userpassword 变量设置为字符串,因为看起来您实际上并没有使用数组,而只是单个值。然后,您可以直接从 Text 属性分配。
  • 如果您能解释一下您将使用这些字符串数组做什么,那真的很有帮助。
  • 我想同时添加用户名和密码,以便稍后在简单的登录屏幕上登录
  • 如果“用户名和密码”是指一个用户名和一个密码,那么您应该使用字符串,而不是字符串数组。如果密码是用户名,你应该创建一个包含两者的类。

标签: c# arrays winforms


【解决方案1】:

您想使用字符数组,而不是字符串数组。这是因为textBox1.Text 返回的是字符串类型,而不是字符串数组类型。对字符串调用 ToArray() 会产生 char 数组类型。

    char[] user = textBox1.Text.ToArray();
    char[] password= textBox2.Text.ToArray();

您还应该考虑将string[] userstring[] password 改为字符串类型,因为我假设您只在用户中存储一个用户名。如果您尝试存储用户集合,则应正确命名变量,例如string[] users,以免造成混淆。

【讨论】:

    【解决方案2】:

    userpassword 已被分配为单元素数组。数组是不可变的,不能追加,所以你不能这样做:

    public string[] user = { "username" };
    public string[] password = { "password" };
    //...
    user.Append(textBox1.Text);
    password.Append(textBox2.Text);
    

    但您可以使用以下方式重新分配 userpassword 数组:

    public string[] user = { "username" };
    public string[] password = { "password" };
    //...
    user = new[] { user[0], textBox1.Text };
    password = new[] { password[0], textBox2.Text };
    

    不过,这相当笨拙。您最好将userpassword 定义为List<String>,即:

    public List<string> user = new List<string>() { "username" };
    public List<string> password = new List<string>() { "password" };
    //...
    user.Add(textBox1.Text);
    password.Add(textBox2.Text);
    

    【讨论】:

      【解决方案3】:

      你应该使用字符数组而不是字符串数组:

      public string[] users = { "username" };
      public string[] passwords = { "password" };
      

      -

      char[] users = textBox1.Text.ToArray();
      char[] passwords= textBox2.Text.ToArray();
      

      您可以使用List&lt;string&gt; 代替字符串数组来作为用户名和密码。

      提示:最好将您的 textBoxes 重命名为 txtUserName 之类的,以便更清晰地编写代码。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2013-09-24
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多