我有以下代码应该从来自服务器的字符串生成列表项。代码如下:
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);
}
现在我的问题是,如果字符串数组“years”有{2011,2012},那么列表应该是2011年和2012年。但它有2012,2012。我无法在此代码中找到错误。请指教。
答案 0 :(得分:8)
您在循环中的每个循环中重用相同的yearLi
对象。当你这样做时:
yearList.Add(yearLi);
您每次都要添加相同的对象。当你下次循环更改它时,你会在列表的每个单元格中更改它(因为它都是对同一个对象的引用)。
你需要在循环中实例化一个新的yearLi
(无论应该是什么类)。