3.5与4.0中的LINQ扩展SelectMany?当我在这里看到Darlings的建议时...IEnumerableprocesses=new[]{"process1","process2"}.SelectMany(Process.GetProcessesByName);(process.getprocessesbyname())..我有点好奇,我在VS2008和VS3.5中试过-它没有编译,除非我把它改成.IEnumerableres=newstring[]{“notepad”,“firefox”,“outlook”}.SelectMany(s=>Process.GetProcessesByName(s));在我怀疑这是我的问题之前阅读了Darins的一些答案,当我后来在.NET4.0上使用.NET4.0时-正如预期的那样-最初的建议非常有效。我的问题是:从3.5到4.0发生了什么使这个(新语法)成为可能?是扩展(嗯)扩展方法还是lambda语法的新规则?似乎在较新版本的C#中(C#4.0与C#3.0...不是.NET版本),委托选择要智能得多。这个思路在VS2008中可行,但是在解决多个重载时使用哪个版本的方法时存在问题。该方法是在编译时选择的,所以我不得不相信它与较新的编译器有关,而不是.NET的版本。您可能会发现在VS2010中为.NET2.0编译的解决方案可以使用新的重载函数。比如这个适用于VS2008以上是C#学习教程:LINQextensionSelectManyin3.5vs4.0?如果分享的内容对你有用,需要了解更多C#学习教程,希望大家多多关注——varret=new[]{"Hello","World","!!!"}.Aggregate(Path.Combine);//这是ret的值=>HelloWorld!!!本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处:
