項目を含む IList があります (親が最初)。逆の順序でダイアグラム ドキュメントに追加して、親が最後に追加され、一番上に描画されるようにして、ユーザーが最初に選択するようにする必要があります。
それを行う最良の方法は何ですか?以下に投稿する現在行っていることよりも優れた/よりエレガントな何か..
項目を含む IList があります (親が最初)。逆の順序でダイアグラム ドキュメントに追加して、親が最後に追加され、一番上に描画されるようにして、ユーザーが最初に選択するようにする必要があります。
それを行う最良の方法は何ですか?以下に投稿する現在行っていることよりも優れた/よりエレガントな何か..
.NET 3.5 を使用している場合は、LINQ のリバースを使用できますか?
foreach(var item in obEvtArgs.NewItems.Reverse())
{
...
}
(一般的な IList について話していると仮定して)
Davy's answerおよびGishu's original answerへのコメントに基づいて、拡張メソッドを使用して、弱く型付けSystem.Collections.IList
されたものをジェネリック コレクションにキャストできます。System.Linq.Enumerable.Cast
var reversedCollection = obEvtArgs.NewItems
.Cast<IMySpecificObject>( )
.Reverse( );
for
これにより、逆ループとキャストの両方のノイズが取り除かas
れ、元のコレクションから厳密に型指定されたオブジェクトが取得されます。
NewItems は私のリストです...ただし、これは少し不格好です。
for(int iLooper = obEvtArgs.NewItems.Count-1; iLooper >= 0; iLooper--)
{
GoViewBoy.Document.Add(CreateNodeFor(obEvtArgs.NewItems[iLooper] as IMySpecificObject, obNextPos));
}