如何在列表中添加新项目?
这是我的对象列表或人们称之为
的任何内容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。 Imagin有一个单词“hello”,视频名称为“Dexter”,并且还有一个单词“hello”,但这次的视频名称为“Breaking Bad”。
如何将这些视频名称添加到videosOfSelectedWord的属性列表?
答案 0 :(得分:6)
您必须自己分配列表 - 您可以使用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
}
(顺便说一下,你的名字应该遵循命名约定,所以属性应该大写)