2016-01-14 37 views
0

我有一個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; 

      } 
     } 

我想將數組的FILLED元素顯示到`label.text中。

因此,當我運行程序時,標籤顯示了數字4(因爲數組的4個元素被填充)。當我添加值與btnclick陣列,標籤需要顯示5號等等...`

+0

任何你到目前爲止試過的東西? – croxy

+1

可能的重複[我如何加入一個字符串數組,但首先刪除數組中的元素是空的?](http://stackoverflow.com/questions/12777650/how-can-i-join-an-array -of-strings-but-first-remove-the-elements-the-the-th-th) – Shaharyar

+0

是的,我已經嘗試使用count.length方法。但它顯示值10.它只是計數我陣列中POSSIBLE填充的位置。我只需要顯示填充的值。 – Needsomehelp

回答

1

您可以使用Linqarray中獲取填充元素的數量。

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

謝謝,但正如已經說過的,我不能使用列表。有沒有一種方法來計算我的數組的填充元素? – Needsomehelp

+1

這不是一個List它是一個數組。這是建立在.Net框架的方法中的。 – Mairaj

+0

這個方法適用於你的'array',所以你只需要寫這行就不需要創建l'ist'。 – Mairaj

-1

可以使用

Using System.LINQ 
----- 

Marken.Count(); 
+0

謝謝。但是這顯示值10.不是實際填充的元素。 – Needsomehelp

+0

嘗試編輯的答案..但最好是在你的情況下用戶列表'。 –

0

獲得元素的數量array你可會有空白索引?

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

如果你不打算曾經有空白的指標,您可以將標籤設置爲:

[arrayName].length 

這將加在一起指標的數量在數組中。

編輯:OP說會有空白指標

我會建議通過數組循環,看看哪些指標有值,然後增加一個計數器,你將設置爲標籤的文本。

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

然後您將您的標籤文本設置爲計數器。

+0

是的,我會有空白的索引。 – Needsomehelp

0

更簡單的方法是使用List<string>並顯示列表的Count()。列表是動態增長的數據結構,因此每次將項目添加到列表中時,列表都會自動增長。

如果你想使用數組,你可以從第一個元素開始,使用String.IsNullorEmpty(string str)和一個計數器,每當你找到一個既不爲空也不爲空的字符串時,計數器就會增加。

一旦你打空/空字符串,你停止你的循環,並顯示計數器。

+0

謝謝,但我無法使用列表。它必須是一個數組。 – Needsomehelp

+0

@Needsomehelp:那麼你將需要去第二種方法 – npinti

0

原諒我,如果我把它解釋得比它更簡單,但據我所知你需要做的就是添加「[表單上的標籤名稱] .Text = Merken.Count()。的ToString();」在添加新項目的代碼中。

是否有一個特定的原因,你在設置中使用Merken,但最初宣佈爲品牌?

0

爲什麼你不使用列表 它有Count屬性。如果你需要導出數組,你可以調用.ToArray()方法來獲取你的列表數組。