以下のスニペットを実行すると例外がスローされます。System.NotSupportedException: 'コレクションは読み取り専用です。'オブジェクトをiListから削除するときにスローされる
私はiListof webelementsを持っており、その要素に "WSC"という文字列が含まれている場合は、iListから削除したいと思います。
誰でもお手伝いできますか?以下のコード。
IList<IWebElement> tableRows;
tableRows = FindElement(By.XPath("//div[@ui-grid='vm.gridWoodSmokeViolations']")).FindElements(By.XPath("//div[@role='row']"));
Console.WriteLine("table row count before loop: " + tableRows.Count);
foreach (var row in tableRows) {
if (row.Text.ToString().Contains("WSC"))
{
tableRows.Remove(row); //exception thrown here
}
}
あなたがIListのをimplments
'foreach'を使用してコレクションをループする際にコレクションを変更しないでください。 [この回答では](https://stackoverflow.com/questions/7340757/c-sharp-list-removing-items-while-looping-iterating)のような 'for'ループを使ってみてください。または、削除する項目を見つけて、その項目への参照を保存し(LINQはここで助けます)、ループの後*を*削除します。 – Jonesopolis
@Jonesopolis上記の目標を達成するにはどうしたらいいですか? i * dont * wantという文字列が含まれている場合、そのWeb要素を削除しますか? – kevin
ok notmind私はそれを得たと思う。私は望んでいない要素を含む別のiListを作成してから、その2番目のiListを使ってオブジェクトを元のiList から削除しますか? – kevin