我有一个对象列表:
public List<IdNamePair> Languages
{
get { return languages; }
set { languages = value; }
}
如何从相同
IdNamePair
的词典添加到上面的“语言”列表中?protected Dictionary<int, List<IdNamePair>> CountryLanguages { get; set; }
我正在尝试这样做:
subjectBaseInfo.Languages = CountryLanguages;
但是得到这个错误:
无法隐式转换类型
'System.Collections.Generic.Dictionary>'到
'System.Collections.Generic.List'
IdNamePair
包含Id
和Name
。 最佳答案
这两种类型是不同的。 subjectBaseInfo.Languages
只是单个List<IdNamePair>
,而CountryLanguages
是由List<IdNamePair>
索引的一系列int
。
因此,要进行分配,您有两种可能。
如果我假设subjectBaseInfo
也具有Id
属性,那么您可能想要这样做:
subjectBaseInfo.Languages = CountryLanguages[subjectBaseInfo.Id];
但是,如果
subjectBaseInfo
没有Id
,则您可能希望从IdNamePair
的所有列表中获取所有CountryLanguages
作为新的单个列表。在这种情况下,您可以执行以下操作:subjectBaseInfo.Languages = CountryLanguages.SelectMany(kvp => kvp.Value).ToList();