2012-10-26 36 views
0

我有以下代码应该从来自服务器的字符串生成listitems。代码如下:listitem中的值不准确

foreach (String str in years) 
      { 

       if (string.IsNullOrEmpty(str) || str.Equals(" ")) 
       { 
        System.Diagnostics.Debug.WriteLine("empty"); 
       } 
       else 
       { 
        System.Diagnostics.Debug.WriteLine(str); 
        yearLi.Value = str; 
        yearList.Add(yearLi); 
        count = yearList.Count; 
       } 
       System.Diagnostics.Debug.WriteLine("count-->" + count); 

      } 

现在我的问题是,如果字符串数组“年”有{} 2011,2012名单应该是2011年和2012年,但它有2012,2012。我无法在此代码中找到错误。请指教。

+1

告诉我们你是如何初始化'年' – egrunin

回答

8

您正在通过循环在每个循环中重复使用相同的yearLi对象。当您这样做时:

yearList.Add(yearLi); 

您每次都添加相同的对象。当你在循环中下一次改变它时,你将在列表中的每个单元格中更改它(因为它全部是对同一对象的引用)。

您需要一个新的yearLi(无论应该是哪个类)在循环中实例化。

+0

好呀。你绝对正确。谢谢。 – Naga