5

項目を含む IList があります (親が最初)。逆の順序でダイアグラム ドキュメントに追加して、親が最後に追加され、一番上に描画されるようにして、ユーザーが最初に選択するようにする必要があります。

それを行う最良の方法は何ですか?以下に投稿する現在行っていることよりも優れた/よりエレガントな何か..

4

4 に答える 4

7

.NET 3.5 を使用している場合は、LINQ のリバースを使用できますか?

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

(一般的な IList について話していると仮定して)

于 2008-09-18T08:55:07.567 に答える
2

Davy's answerおよびGishu's original answerへのコメントに基づいて、拡張メソッドを使用して、弱く型付けSystem.Collections.IListされたものをジェネリック コレクションにキャストできます。System.Linq.Enumerable.Cast

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

forこれにより、逆ループとキャストの両方のノイズが取り除かasれ、元のコレクションから厳密に型指定されたオブジェクトが取得されます。

于 2008-09-28T17:24:25.537 に答える
0

NewItems は私のリストです...ただし、これは少し不格好です。

for(int iLooper = obEvtArgs.NewItems.Count-1; iLooper >= 0; iLooper--)
            {
                GoViewBoy.Document.Add(CreateNodeFor(obEvtArgs.NewItems[iLooper] as IMySpecificObject, obNextPos));
            }
于 2008-09-18T08:44:48.370 に答える