Ich habe versucht, eine Erweiterung zu erstellen, die jede Array-ähnliche Klasse schneiden könnte (da Slicing in den Standardbibliotheken seltsam abwesend ist). Zum Beispiel:C#: Mehrere Typparameter in Extensions
public static M Slice<M,T>(this M source, int start, int end) where M : IList<T>
{
//slice code
}
Allerdings ist die kompiliert nicht diese Methode, um Objekte vom Typ M befestigen (auch wenn seine Fehlermeldung behauptet, dass das ist, was es sucht). Es scheint eher von den Typparametern des Verfahrens selbst abhängig zu sein, z. in gewisser Weise, aber ich verstehe nicht ganz, wie die Dinge funktionieren.
(ja, könnte man leicht ein Beispiel schreiben, die nur mit Liste funktioniert, aber ich bin neugierig, ob dies überhaupt möglich ist.)
Ja, tut mir leid, ich habe eine tiefe Kopie gemacht. Ansonsten ist GetRange perfekt. – Ender