System.NotSupportedException:'集合是只读的。'从iList中删除对象时抛出

时间:2017-09-13 01:27:01

标签: c# list selenium-webdriver

我在运行以下代码片段时会抛出异常。

我有一个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

            }

        }

感谢您提供的任何帮助

1 个答案:

答案 0 :(得分:3)

并非所有暗示IList的东西都是可编辑的。最简单的解决方案是使用Linq构建过滤器并在其上执行ToList()。

    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);

    tableRows = tableRows.Where(row=> !row.Text.ToString().Contains("WSC")).ToList();