计算填充的数组元素并将结果显示到标签中



我有一个string[] Brands = new string[10];

使用以下代码,我给了它 4 个标准值。我可以使用添加按钮添加值。(我已经得到了这部分代码)

public Form1()
        {
            {
                InitializeComponent();
                Merken[0] = "Yamaha";
                Merken[1] = "Suzuki";
                Merken[2] = "Harley";
                Merken[3] = "Kawasaki";
                merkNr = 4;
                listBoxMotoren.DataSource = Brands;
            }
        }

我想将数组的 FILL 元素显示到"label.text"中。

因此,当我运行程序时,标签显示数字 4(因为数组的 4 个元素已填充)。当我使用 btnclick 向数组添加一个值时,标签需要显示数字 5,依此类推......"

您可以使用

Linqarray中获取填充元素的计数。

int count = Merken.ToList().Where(x => (!string.IsNullOrEmpty(x))).Count();
yourLabel.Text = count.ToString();

一种更简单的方法是使用List<string>并显示列表的Count()。列表是动态增长的数据结构,因此每次向列表中添加项目时,列表都会自动增长。

如果要使用数组,可以从第一个元素开始,并使用String.IsNullorEmpty(string str)和计数器,每次找到既不为 null 也不为空的字符串时,计数器都会递增。

一旦你点击一个空/空字符串,你停止你的循环并显示计数器。

如果我

将其解释为比实际更简单,请原谅我,但据我所知,您需要做的就是添加"[表单上的标签名称]。Text = Merken.Count()。ToString();" 在添加新项的代码中。

您是否在设置中使用了Merken,但最初将其声明为品牌?

为什么不使用列表它具有计数属性。如果您需要数组进行导出,您可以调用.ToArray() 方法来获取列表的数组。

你会有空白索引吗?

Merken[4] = ""
Merken[5] = "Honda"

如果将来不会有空白索引,可以将标签设置为:

[arrayName].length

这会将数组中的索引数相加。

编辑:OP说会有空白索引

我建议遍历数组以查看哪些索引具有值,然后递增一个计数器,您将将其设置为标签文本。

int indexesWithValues = 0;
for (int i = 0; i < Brands.length; i++)
{
   if (Brands[i] != "")
   {
       indexesWithValues++;
   }
}

然后将标签文本设置为计数器。

您可以使用

以下命令获取array中的元素数量

Using System.LINQ  
-----
Marken.Count();

最新更新