winforms 数组列表项不接受字符串作为输入错误代码:CS0029系列

a5g8bdjr  于 2022-12-14  发布在  其他
关注(0)|答案(1)|浏览(86)
ArrayList a = new ArrayList();

a[i] = txtSifre.Text; //ERROR CS0029

我想把来自文本框的字符串数据存储到一个数组列表中,但是,我遇到了一个转换错误:无法在C#中将型别'string'隐含转换为'system.collections.arraylist'
下面是完整的代码:

int i = 0;
        ArrayList a = new ArrayList();
        private void btnEkle_Click(object sender, EventArgs e)
        {
            Hashtable openwith = new Hashtable();
            openwith.Add(txtKullaniciAdi.Text, txtSifre.Text);

            foreach (var item in openwith)
            {
                foreach (DictionaryEntry de in openwith)
                {
                    listBox1.Items.Add($"User Name : {de.Key} \t Password : {de.Value}");
                }
            }

            a[i] = txtSifre.Text; //ERROR CS0029 !!
            if(i>=1)
            {
                for (int J = 1; J < 2; J++)
                {
                    if (a[J - 1].ToString() == a[J].ToString())
                    {
                        MessageBox.Show("You can not enter the same password again!!");
                    }
                }
            }
            i++;

            
        }
    }
6mw9ycah

6mw9ycah1#

正如Martheen提到的,使用List会更好。
示例:

var a = new List<string>();

a.Add(txtSifre.Text);

不过,我也要谈几点。

1.在openwith上复制两个foreach

我认为第一个循环是无用的,你可以删除它,当然不删除它的内容。

//foreach (var item in openwith) //DELETE THIS
            //{
                foreach (DictionaryEntry de in openwith)
                {
                    listBox1.Items.Add($"User Name : {de.Key} \t Password : {de.Value}");
                }
            //}

2. If/Foreach区块

if(i>=1)
            {
                for (int J = 1; J < 2; J++)
                {
                    if (a[J - 1].ToString() == a[J].ToString())
                    {
                        MessageBox.Show("You can not enter the same password again!!");
                    }
                }
            }

它似乎相当复杂,我不多,但它是可能的,我不明白所有的你试图做什么。
下面我再给大家多提几点建议:

  • 您可以使用List.Count属性来计算清单中的项目数目。

示例:if (a.Count > 1) { ... }

  • 您可以使用List.Contains方法检查项目是否在列表中。

示例:if (a.Contains(txtSifre.Text)) { ... }
希望能帮到你。

相关问题