LINQ不适用于Xamarin中的字符串?

bod*_*gly 6 c# linq visual-studio xamarin visual-studio-2015

我有以下功能:

    private static string SanitizeVersionStringFromUnit(string version)
    {
        var santizedString = new string(version.Where(char.IsLetterOrDigit).ToArray()); ;
        return santizedString;
    }
Run Code Online (Sandbox Code Playgroud)

然而,intellisense告诉我字符串不包含Where的定义,并且没有找到扩展方法.我using System.Linq;在文件中声明了.在非Xamarin项目中,此代码工作正常.

这是VS2015社区中的Xamarin.Forms PCL项目.是什么赋予了?

Gio*_*rgi 13

您收到错误,因为PCL版本string没有实现IEnumerable<char>.您可以使用Cast以编译代码:

private static string SanitizeVersionStringFromUnit(string version)
{
    var santizedString = new string(version.Cast<char>().Where(char.IsLetterOrDigit).ToArray());
    return santizedString;
}
Run Code Online (Sandbox Code Playgroud)

有关更多详细信息,请参阅此问题: 为什么String类不在可移植库中实现IEnumerable?