Ich weiß in Python können Sie etwas wie myList[1:20]
tun, aber gibt es etwas Ähnliches in C#?Wie trenne ich eine Liste in C#?
Antwort
var itemsOneThroughTwenty = myList.Take(20);
var itemsFiveThroughTwenty = myList.Skip(5).Take(15);
können Sie List<T>.GetRange()
verwenden:
var subList = myList.GetRange(0, 20);
Von MSDN:
Erstellt eine flache Kopie eines Bereichs von Elementen in der Quelle
List<T>
.
public List<T> GetRange(int index, int count)
sans LINQ Quicky ...
while (myList.Count>countIWant)
myList.RemoveAt(myList.Count-1);
public static IEnumerable<TSource> MaxOf<TSource>(this IEnumerable<TSource> source, int maxItems)
{
var enumerator = source.GetEnumerator();
for (int count = 0; count <= maxItems && enumerator.MoveNext(); count++)
{
yield return enumerator.Current;
}
}
Wie es aussieht, könnten Sie einen erläuternden Text hinzufügen, da weniger erfahrene Benutzer Schwierigkeiten haben werden, Ihr zu verstehen Antworten. – Raad
Dies könnte für Effizienz hilfreich sein, wenn Sie wirklich die Liste kürzen wollen, nicht eine Kopie. Während das Python-Beispiel eine Kopie erstellt, ging es bei der ursprünglichen Frage wirklich darum, die Liste zu kürzen.
eine Liste <> Objekt „Liste“ Gegeben und Sie die 1. bis 20. Elemente
list.RemoveRange(20, list.Count-20);
Dies tut es an seinem Platz. Dies ist immer noch O (n), da die Verweise auf jedes Objekt entfernt werden müssen, aber etwas schneller sein sollten als bei jeder anderen Methode.
- 1. Wie trenne ich ein Bild mit Wasserzeichen?
- 2. Wie trenne ich eine Zeichenfolge während der Konvertierung in Bytes in C#?
- 3. Wie trenne ich eine Zeichenfolge mit dynamischen URL Slug?
- 4. Wie lösche/trenne ich Tabellen von Hadoop-Hive?
- 5. Wie bekomme ich eine Liste aller geladenen Typen in C#?
- 6. Wie füge ich eine verknüpfte Liste in C++ zusammen?
- 7. Wie entpacke ich eine Liste?
- 8. Wie man eine Liste in C# sortieren
- 9. Wie eine Liste der Doppel in C#
- 10. Wie konvertiere ich Benutzereingaben in eine Liste?
- 11. Wie wiederhole ich eine Liste?
- 12. Wie trenne ich Float im% .2f-Format, während ich es in JSON umwandle?
- 13. Wie verschiebe ich Elemente aus einer Liste in eine andere Liste in C#?
- 14. Wie bekomme ich eine Unterliste in C#
- 15. Wie trenne ich eine Java-Zeichenfolge, die in eine bestimmte Anzahl von Bytes passt, sobald UTF-8 codiert?
- 16. Wie überprüfe ich eine Liste in Haskell?
- 17. Wie sortiere ich eine Liste in JavaScript?
- 18. Wie erstelle ich eine Liste in Oz?
- 19. Wie erweitere ich eine Liste in Dart?
- 20. C# Wie sortiere ich eine sortierte Liste nach ihrer Wertspalte
- 21. C# suche eine Liste
- 22. Wie transformiere ich eine mehrstufige Liste in eine Liste von Strings in Python?
- 23. C# - Ich möchte eine Methode, die eine Liste erstellen oop
- 24. C# JSON Gibt eine Liste Innerhalb Liste
- 25. Wie reflektiere ich eine Liste von EntityObjects?
- 26. Wie konvertiere ich eine Zeichenfolge in eine Liste in Io?
- 27. Wie reduziere ich eine Liste in einen String in Python?
- 28. Benötige ich eine Sperre für eine Liste? C#
- 29. Wie funktioniert das Listenverständnis (kompakte Möglichkeit, eine Liste in eine andere Liste umzuwandeln) in C#?
- 30. Wie finde ich eine Liste von drahtlosen Netzwerken (SSIDs) in Java, C# und/oder C?
Beachten Sie, dass diese LINQ-Erweiterungen tatsächlich ein IEnumerable <> erstellen, das nach N Elementen anhält, anstatt ein neues Array/eine neue Liste zu erstellen. (Dies wird durch die Verwendung von 'var' für den Variablentyp verdeckt. Wenn der Code nach der Trunkierung viele Male durch die neue Liste iteriert, wird der Ausdrucksbaum * jedes Mal * neu bewertet. In diesem Fall Vielleicht möchten Sie eine '.ToList()' an das Ende heften, um zu erzwingen, dass die Elemente aufgelistet werden und eine neue Liste erstellt wird – JaredReisinger