我有一个对象列表:

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包含IdName

最佳答案

这两种类型是不同的。 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();

09-06 08:41