List<Question> withTags =
Question.GetRecentQuestionsWithTags(StackExchangeSite.StackOverflow, "c#");
上面的代码有编译错误;
无法隐式转换类型&System; Collection.Collections.Generic.ICollection&#39;到&#39; System.Collections.Generic.List&#39;。
虽然它适用于.ToList(),但为什么错误在第一位?
List<t> implements from ICollection<T> and so does ICollection<Question>
答案 0 :(得分:2)
因为ICollection
不一定是List
,但也可以是任何其他集合,例如Dictionary
。
答案 1 :(得分:2)
仅因为每个List
都是ICollection
,并不意味着每个ICollection
都是List
。
仅仅因为每个医生都是人,这并不意味着每个人都是医生。
基本逻辑。
答案 2 :(得分:1)
这是因为ICollection
无法隐式投放到List
。反过来它会反过来。
答案 3 :(得分:0)
添加ToList()
List<Question> withTags =
Question.GetRecentQuestionsWithTags(StackExchangeSite.StackOverflow, "c#").ToList();
你总是可以将一个列表转换为一个集合(List类是一个ancesotor),但它并没有反过来。