我有以下功能:
private static string SanitizeVersionStringFromUnit(string version) { var santizedString = new string(version.Where(char.IsLetterOrDigit).ToArray()); ; return santizedString; }
然而,intellisense告诉我字符串不包含Where的定义,并且没有找到扩展方法.我使用System.Linq;在文件中声明.在非Xamarin项目中,此代码工作正常.
这是VS2015社区中的Xamarin.Forms PCL项目.是什么赋予了?
解决方法
您收到错误,因为PCL版本的字符串未实现IEnumerable< char>.您可以使用Cast来编译代码:
private static string SanitizeVersionStringFromUnit(string version) { var santizedString = new string(version.Cast<char>().Where(char.IsLetterOrDigit).ToArray()); return santizedString; }
有关更多详细信息,请参阅此问题: Why doesn’t String class implement IEnumerable in portable library?