猿问

LINQ:在动态列表上选择不编译

假设我有一个这样的方法:


static string ToString(dynamic d)

{

    return (string)d.ToString();

}

例如,我有 var tmp = new List<dynamic> { 1, "2", 345 };


为什么


IEnumerable<string> test = tmp.Select(ToString);

编译正常,但是


IEnumerable<string> test = tmp.Select(x => ToString(x));

不是吗?


错误:


CS0266  Cannot implicitly convert type 'System.Collections.Generic.IEnumerable<dynamic>'  to 'System.Collections.Generic.IEnumerable<string>'. An explicit conversion exists (are you missing a cast?)

这在 VS 2015 和 VS 2017 上适用于所有 >=4.5.0 框架


繁星点点滴滴
浏览 129回答 2
2回答
随时随地看视频慕课网APP
我要回答