Я пытаюсь вызвать метод расширения Linq для строки из строки из PCL, но я не могу скомпилировать проект. Вызов .Select()
на строку из отдельного, не переносимого проекта компилируется. Я вижу, что .Select()
занимает this IEnumerable<TSource> source
. Строковые (и String) типы реализуют IEnumerable
внутри сборки .NETPortable, поэтому почему .Select()
быть недоступен? Может ли компилятор не неявно преобразовывать строки в массивы символов с помощью PCL по какой-то причине?.NET Portable - вызов .Select() для строки
ответ
Компилятор должен неявно преобразовывать string
в IEnumerable<char>
.
Независимо от того, работает ли это, зависит от платформы (ов), на которую вы нацеливаетесь, с переносимой библиотекой и, следовательно, какое подмножество .NET Framework доступно. Если вы нацелились на .NET Framework 4 и, например, Xamarin, у вас есть другое подмножество, чем если бы вы ориентировались на .NET Framework 4.5.1 и Xamarin. В первом случае компилятор отклонит неявный листинг от string
до IEnumerable<char>
, тогда как в последнем случае он будет принят.
Таким образом, простое решение (если оно вам подходит) предназначалось для целевой платформы .NET Framework 4.5.1 и выше. В противном случае вы можете передать свою строку последовательности символов, например, используя .Cast<char>()
.
Или 'string.ToCharArray', если он доступен – TheLethalCoder
. Хорошая вещь об использовании Cast в этом случае заключается в том, что на платформах, где' string' реализует 'IEnumerable
- 1. C# Portable Application vs .NET
- 2. Portable .Net и MONO Differences
- 3. USB-доступ в .NET Portable Class Library
- 4. Сериализация Portable Object Format (POF) в .NET
- 5. .NET Portable Class Library [Serializable] Attribute
- 6. определить [просматриваемые] в .NET Portable Subset
- 7. Установка псевдонима в .net Portable Subset library
- 8. Portable gcc для linux
- 9. вызов командной строки из приложения .NET
- 10. Что случилось с .ToShortDateString в .NET Portable Class Library
- 11. Перехват запроса SELECT и вызов зарегистрированного .NET-модуля
- 12. Как отредактировать ярлык «column select» в Sublime text 3 portable
- 13. Создать вызов метода в .NET на основе значения строки
- 14. Вызов Clojure из .NET
- 15. Вызов select в python
- 16. TSQL Trim - Portable Method
- 17. Portable Eclipse
- 18. XmlDictionaryWriter закрывает выходной поток при его размещении, .NET Portable
- 19. Capture Portable Executable (PE) Внутренний вызов функции EXE
- 20. Portable Class Library и .NET Framework 4.6.x
- 21. Есть ли способ определить направление текста в .NET Portable Library?
- 22. Portable erlang
- 23. Не могу добавить ссылку на .NET Portable Class Library
- 24. кросс-компиляции Apache Portable Runtime для iPhone
- 25. Portable char newline
- 26. Отсутствует ссылка на проект «.NET Portable Subset» на компьютере коллег
- 27. .net Portable Class Library содержит Microsoft.VisualBasic как зависимость
- 28. .NET Portable библиотека отсутствует BitConverter.DoubleToInt64Bits, замена очень медленная
- 29. эквивалент запроса HTTP POST в библиотеке классов .NET Portable
- 30. выполнить SIP вызов Deskphone .net
Вы добавили 'using System.Linq;' в свою 'use' директиву? –
Возможно, не совсем повторяется, но актуально: http://stackoverflow.com/questions/11557690/why-doesnt-string-class-implement-ienumerablechar-in-portable-library – Abion47
IEnumerable и IEnumerable - это разные интерфейсы. –
Peter