【问题标题】:Add item to List<string> property将项目添加到 List<string> 属性
【发布时间】:2014-10-10 15:44:04
【问题描述】:

如何在我的列表中添加新项目?

这是我的对象列表或其他人所说的

class WordListsAll
{
    public int idAll { get; set; }
    public string wordEnAll { get; set; }
    public string translationAll { get; set; }
    public List<string> videosOfSelectedWord { get; set; }
}

我想要的只是向videosOfSelectedWord 列表属性添加一个新项目。

最好的方法是什么?

foreach (var item in q)
{
      count++;
      oWordListsAll.Add(new WordListsAll
      {
           idAll = count,
           wordEnAll = item.Element("Word").Value,
           translationAll = item.Element("Translation").Value,
           ///////////////here is my goal///////////////////
           videosOfSelectedWord.Add(myCustomString)
       });
}

有时我想回来为之前创建的实例添加一个新的 myCustomString。想象一下视频名称为“Dexter”的单词“hello”,还有一个单词“hello”,但这次视频名称为“Breaking Bad”。

如何将这些视频名称添加到我的 videosOfSelectedWord 属性列表中?

【问题讨论】:

  • 如何向列表 属性多次添加新项目?

标签: c# list class object add


【解决方案1】:

您必须自己分配列表 - 您可以使用 collection initializer

foreach (var item in q)
{
    count++;
    oWordListsAll.Add(new WordListsAll
    {
        idAll = count,
        wordEnAll = item.Element("Word").Value,
        translationAll = item.Element("Translation").Value,
        videosOfSelectedWord = new List<string> { myCustomString }
    });
}

要添加到现有项目,可能是这样的(从你的问题中不完全清楚,你可能应该做一些阅读):

//should really use a dictionary, this is just to show a simple example
var alreadyExists = videosOfSelectedWord.FirstOrDefault(x => x.wordEnAll == item);
if(alreadyExists !=null)
{
    alreadyExists.videosOfSelectedWord.Add(myCustomString);
    alreadyExists.idAll++;
}
else
{
    //new item
}

(顺便说一句,你的名字确实应该遵循命名约定,所以属性应该大写)

【讨论】:

  • 你知道我想添加一个新的 myCustomString(新视频名称),每次重复 wordEnAll(视频文本中存在英文单词)。我将根据 id 访问我的对象,并希望将新的 myCustomString 添加到 videoOfSelectedWord 属性。如果可能的话?
  • 目前您每次都在创建一个新的WordListsAll 实例 - 作为问题的一部分,您能否更好地描述您想要实现的目标?
猜你喜欢
  • 2012-12-26
  • 1970-01-01
  • 2020-06-08
  • 2017-04-16
  • 1970-01-01
  • 2016-04-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多