我的清单.c#不断添加和重写之前的所有项

本文关键字:重写 添加 我的 | 更新日期: 2023-09-27 18:07:08

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)行放了一个break,所以我确信它得到了正确的数据,但每次它向列表中添加一个新项目时,它会替换第一个并添加一个新的例如

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

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

我的清单.c#不断添加和重写之前的所有项

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

在第一个示例中,您重复添加'tweet'的单个实例,然后修改该实例,因此列表中的所有条目将是相同的。的新实例