Ich versuche, die .Select()
Linq-Erweiterungsmethode für eine Zeichenfolge innerhalb einer PCL aufzurufen, aber ich kann das Projekt nicht kompilieren. Der Aufruf von .Select()
an einer Zeichenfolge aus einem separaten, nicht tragbaren Projekt ist kompilierbar. Ich kann sehen, dass .Select()
this IEnumerable<TSource> source
einnimmt. Die String- (und String-) Typen implementieren IEnumerable
innerhalb der .NETPortable-Assembly. Warum sollte also .Select()
nicht verfügbar sein? Kann der Compiler aus irgendeinem Grund Zeichenfolgen nicht implizit in Zeichenfelder mit PCLs umwandeln?.NET Portable - Aufruf .Select() für eine Zeichenfolge
Antwort
Der Compiler muss implizit eine string
in eine IEnumerable<char>
konvertieren.
Ob dies funktioniert, hängt von den Plattformen ab, auf die Sie mit der portablen Bibliothek ausgerichtet sind, und somit, welche Teilmenge von .NET Framework verfügbar ist. Wenn Sie .NET Framework 4 und beispielsweise Xamarin als Ziel verwenden, haben Sie eine andere Teilmenge als bei .NET Framework 4.5.1 und Xamarin. Im ersten Fall wird der Compiler eine implizite Umwandlung von string
zu IEnumerable<char>
ablehnen, während im letzteren Fall akzeptiert wird.
Also die einfache Lösung (wenn es für Sie realisierbar ist) wäre .NET Framework 4.5.1 und höher zu zielen. Andernfalls können Sie Ihre Zeichenfolge in eine Zeichenfolge abwandeln, z. B. mit .Cast<char>()
.
Oder 'string.ToCharArray' wenn es verfügbar ist – TheLethalCoder
Die gute Sache über die Verwendung von Cast in diesem Fall ist, dass auf Plattformen, wo' string' 'IEnumerable
- 1. Portable. NET und MONO-Unterschiede
- 2. Portable Klassenbibliothek und .NET ConcurrentDictionary
- 3. .NET Portable Klassenbibliothek [Serializable] Attribut
- 4. C# Portable Anwendung vs. NET
- 5. Aufruf-API für .NET
- 6. Wie eine Select-Anweisung für eine gespeicherte Prozedur von .net
- 7. Funktionieren Portable Class Libraries mit .net 3.5?
- 8. Concat eine Zeichenfolge SELECT * MySql
- 9. .NET Portable Class Library und UDP-Unterstützung
- 10. Verwenden von System.Threading.Tasks.Parallel mit .NET Portable Subset
- 11. Portable Klassenbibliothek und .NET Framework 4.6.x
- 12. Portable Bitfelder für Handles
- 13. portable-executable für cmake
- 14. Portable Klassenbibliothek für MonoDroid und MonoTouch
- 15. Portable Class Library Testing
- 16. Argumente für CloseHandle() WinAPI-Aufruf in. NET
- 17. eine portable domänenspezifische Sprache schreiben
- 18. Python-GUI für portable Anwendung
- 19. portable mysql für die Entwicklung
- 20. Wie implementiert Fortschrittsbericht für Portable HttpClient
- 21. NUnit für Portable Class Bibliothekstests
- 22. SELECT Teil der Zeichenfolge
- 23. Entity Framework für Portable Klassenbibliothek
- 24. Aufruf eines Datenrahmen über eine Zeichenfolge
- 25. Alternative zu ConcurrentDictionary für portable Klassenbibliothek
- 26. Ist es möglich, eine portable ausführbare Datei in eine .net-DLL einzubetten und zu verwenden?
- 27. Portable Klassenbibliothek: empfohlener Ersatz für [Serializable]
- 28. Wie kann ich Unterstützung für "portable-net45 + win8" hinzufügen?
- 29. .NET Portable Bibliothek fehlt BitConverter.DoubleToInt64Bits, Austausch sehr langsam
- 30. Wie kann ich eine Zeichenfolge in .NET in .NET konvertieren?
Haben Sie 'using System.Linq;' zu Ihrer 'using' Direktive hinzugefügt? –
Vielleicht nicht ganz doppelt, aber immer noch relevant: http://stackoverflow.com/questions/11557690/why-doesnt-string-class-implement-ienumerablechar-in-portable-library – Abion47
IEnumerable und IEnumerable sind verschiedene Schnittstellen. –
Peter