Frage

Ich habe einen IList, die Elemente (Eltern zuerst) enthält, müssen sie in ein Diagramm Dokument in der umgekehrten Reihenfolge hinzugefügt werden, so dass die Eltern zuletzt hinzugefügt wird, oben gezogen, so dass es das erste, was von zu wählenden der Benutzer.

Was ist der beste Weg, es zu tun? Etwas besser / eleganter als das, was ich derzeit tue was ich unten posten ..

War es hilfreich?

Lösung

Wenn Sie .NET 3.5 haben Sie LINQ umge verwenden könnte?

foreach(var item in obEvtArgs.NewItems.Reverse())
{
   ...
}

(Vorausgesetzt, Sie sprechen über den generischen IList)

Andere Tipps

Basierend auf den Kommentaren zu Davy Antwort und ursprüngliche Antwort des Gishu, könnten Sie Ihre schwach typisierte System.Collections.IList auf eine generische Sammlung mit der System.Linq.Enumerable.Cast Erweiterungsmethode Cast:

var reversedCollection = obEvtArgs.NewItems
  .Cast<IMySpecificObject>( )
  .Reverse( );

Dies entfernt das Rauschen sowohl die Rückwärts for Schleife und der as Guss ein stark typisierte Objekt aus der ursprünglichen Sammlung zu erhalten.

NewItems ist meine Liste hier ... Das ist ein bisschen obwohl klobig.

for(int iLooper = obEvtArgs.NewItems.Count-1; iLooper >= 0; iLooper--)
            {
                GoViewBoy.Document.Add(CreateNodeFor(obEvtArgs.NewItems[iLooper] as IMySpecificObject, obNextPos));
            }

Sie haben nicht LINQ benötigen:

var reversed = new List<T>(original); // assuming original has type IList<T>
reversed.Reverse();
foreach (T e in reversed) {
  ...
}
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top