0

我有以下代码应该从来自服务器的字符串生成列表项。代码如下:

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。我无法在此代码中找到错误。请指教。

4

1 回答 1

8

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

yearList.Add(yearLi);

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

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

于 2012-10-26T17:32:09.833 回答