运行以下代码段时,我抛出异常。

我有一个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的东西都是可编辑的。最简单的解决方案是使用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();

关于c# - System.NotSupportedException:“集合为只读”。从iList中删除对象时抛出,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/46187478/

10-11 19:06