我的List.Add in C#不断添加和重写所有以前的项目

时间:2015-08-10 16:20:39

标签: c#

foreach (var item in tweets)
{
     XmlNode user = users[i];
     XmlNode text = texts[i];
     XmlNode id = ids[i];
     string userstr = user.InnerText;
     string textstr = text.InnerText;
     string idstr = id.InnerText;
     tweet.user = userstr;
     tweet.text = textstr;
     tweet.id = idstr;
     tweetlist.Add(tweet);
     ++i;

 }

 return tweetlist;

我在tweetlist.add(tweet)行中休息了一下,所以我确定它正在获取正确的数据,但每当它向列表中添加一个新项目时它会替换第一个并添加一个新项目 例如

List{id = 1, name = "bob"} + {id = 2, name = "jenny"}

成为

list {id = 2 name = "jenny"}, {id = 2 , name = "jenny"}

2 个答案:

答案 0 :(得分:0)

您正在修改tweet对象,然后将其添加到列表中,但在下一个循环中再次修改它之前,您永远不会切换到另一个tweet实例,所以基本上您要添加相同的实例到列表一次又一次(记住:你添加对象引用,而不是副本!)并且每次只修改那个单个实例。

答案 1 :(得分:0)

在第一个示例中,您反复添加单个“tweet”实例,然后修改该实例,因此列表中的所有条目都是相同的。您需要创建一个新的实例 每次发推。