質問失礼致します。

list1にはboolが3つ入っています。
list2はクラスが3つ入ったリストで、そのクラスにはpublic bool flagが宣言されています。

両方falseの番号が見つかるまで繰り返したいです。

public int Check(){

int x = list1.IndexOf(false);

while (list2[x].flag == true){

x = list1.IndexOf(false, x +1)


return x;
}

このコードを書いたのですが、
list2[x].flagが3つ全てtrueだった場合にx+1が範囲外になってエラーが出ていると思われます。

条件に合う物が見つからない時にも何か(-1とか)返せる様にすれば良いのかもしれませんが、どうすればいいのかまったくわかりません。。

どうかヒントだけでも教えて下さい、、
よろしくお願いします。