shdocvw.dllからエクスプローラのフォルダウインドウ取得して
FolderItemsに対して処理をしています。

//FolderViewはShell32.IShellFolderViewDual
//FolderView.SelectedItems()はShell32.FolderItems、IEnumerable

object oItem;
foreach( FolderItem folitem in FolderView.SelectedItems() )
{
 oItem = folitem;
 if(なにか条件)
  FileList.SelectItem( ref oItem, 25 );
 else
  FileList.SelectItem( ref oItem, 0 );
}

なにかの条件で選択するものを変えたいんです。
これだとFolderView.SelectedItems()の要素がループの度に変わると思うんですが
(実際Countプロパティをとると1ループごとに変化してます)
これで動いてしまうんです。

なんで動くか教えてくれません?(;´Д`)

怖いんで今は一旦FolderItemをArrayListなりに格納してからSelectItemしてるんですが