Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Why doesn't String class implement IEnumerable<char> in portable library?

I've created a PCL project that targets .NET Framework 4 and Silverlight 5 (I use an extension for Visual Studio 2010, not portable project template from Visual Studio 2012, if that matters). I am trying to reverse a string using System.Linq.Enumerable.Reverse<TSource>() extension method, but it doesn't work because compiler thinks that System.String doesn't implement IEnumerable<char>.

like image 730
Andrew Khmylov Avatar asked Jul 19 '12 09:07

Andrew Khmylov


1 Answers

The Portable Class Libraries must restrict itself to the classes and methods that are available on all the target platforms it promises to support. The biggest trouble-maker here is WinRT, the CLR has a language projection that maps WinRT types to managed types. The System.String methods not supported by the projection are documented in this answer. GetEnumerator() is one of them.

like image 193
Hans Passant Avatar answered Nov 08 '22 08:11

Hans Passant