2012-09-19 42 views
1

我有兩個數組,其中一個的值需要在網頁上的標籤上顯示,另一個使用標籤的位置顯示。我有與標籤名稱的網頁標籤54「LB1,LB2,... lb54」網頁上的多個標籤

假設

int [] values = {21,22,18,16,17.........22} 

int [] positions = {12, 1,3,5,54,.........8} 

現在我需要與相應位置上的標籤顯示「值」。位置數組描述值的分配順序。所以標籤12應該有21個,標籤1應該有22 ...等

我運行一個循環嘗試這樣做,不能把它..

for (int j=1;j<=54; j++) 
{ 
    getLabelID("label" + positions [j].toString).Text = Convert.ToString(values[1]); 
} 
+0

54個標籤名爲lb1..lb54?這應該直接進入_thedailywtf.com_,恕我直言。 –

回答

0

第一個數組是基於0的索引,所以你的循環應該從0開始到< 54或者數組長度

並且沒有toString屬性來獲取字符串,有ToString()方法獲取字符串值。所以positions[j].toStringpositions[j].ToString()

,你總是使用values[1]正從你的價值數組的第二個元素,它必須改變values[j]

你的循環應該是這樣

for (int j=0;j<positions.Length; j++) 
{ 
    getLabelID("label" + positions[j].ToString()).Text = Convert.ToString(values[j]); 
} 
0

你」重新從ToString()的末尾丟失括號。嘗試:

for (int j=1;j<=54; j++) 
{ 
    getLabelID("label" + positions [j].ToString()).Text = Convert.ToString(values[1]); 
} 
0

您可以使用此代碼嘗試 - 基於LINQ運營商

var controls = this.Controls.OfType<Label>().ToList(); 
foreach(Label item in controls) 
{ 
    var index = Convert.ToInt32(item.Id.ToString().Replace("label","").Trim()); 
    var text = Convert.ToString(values[index]); 
    System.Console.WriteLine(text); 
    item.Text = text; 
} 
+0

謝謝,但它給錯誤的ID,它說沒有擴展方法「ID」 – user1375481

+0

我很高興幫助你,但我更新了我的答案 –

0

,如果你不希望有「54」的硬編碼,你可以做這樣的事情:

positions.ToList().ForEach(
    p=>getLabelID(String.Format("label{0}",p)).Text=values[p].ToString() 
);