C# と VB.NET の質問掲示板

わんくま同盟

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト


(過去ログ 84 を表示中)
■50011 / )  List(Of Class)のループを使った要素の削除
□投稿者/ パリス (1回)-(2010/05/26(Wed) 15:52:46)

分類:[VB.NET/VB2005 以降] 

こんにちは。
今、List(Of Class)を使用した処理を行っており、
1.List(Of Class)をループで回す。
2.要素であるClassのあるプロパティの条件により、この要素Classの内容で処理を行う。
3.この要素をListから削除する
ということをやりたいと考えています。
とりあえず、以下のソースのようにしてみましたが、
(ListTestは、List(Of Class)の変数です。)

For i = 0 To ListTest.Count - 1
    If (ListTest.Item(i)の内容が条件に合致する) Then
        '処理

        ListTest.RemoveAt(i)
    End If
Next

これだと、Removeが発生すると、Listの要素数が変わってしまい、インデックス範囲外の例外が発生してしまいます。
また、List要素の最後から処理を行えば、Removeの影響はなさそうですが、
ループを使用して行う処理の順番は、Listのインデックス順に行いたいのです。

どなたかお知恵を頂きたく、お願い致します。
開発言語はVB2008です。

返信 編集キー/


管理者用

- Child Tree -