-2

下面的代码按预期工作,但我想知道有没有办法使用 Linq 改进我的代码?

我正在做的是查看 rows[5] 和 rows[6] 是否有价值。

for (int i = 0; i < nameList.Count; i++)
{
     IList<IWebElement> rows = driver.FindElements(By.CssSelector("itd_1"));
     for (int k = 0; k < rows.Count; k++)
     {
        if (rows[5].Text != " " && rows[6].Text != " ")
        {
           if (!string.IsNullOrEmpty(rows[5].Text) || 
               !string.IsNullOrWhiteSpace(rows[5].Text) && 
               !string.IsNullOrEmpty(rows[6].Text) || 
               !string.IsNullOrWhiteSpace(rows[6].Text))
           {
              //do something here...
           }
        }
    }
 }
4

3 回答 3

2
var result = rows.Where(x => !string.IsNullOrWhitespace(x[5]) && !string.IsNullOrWhitespace(x[6]));

这会让你得到IEnumerable你想要的结果。

于 2013-06-12T18:50:12.763 回答
0

试试上面的

   rows.Where(x => x[5].Text != " " && x[6].Text  != " ")
            .Where(x=> !string.IsNullOrEmpty(x[5].Text ) || !string.IsNullOrWhiteSpace(x[5].Text )
                && !string.IsNullOrEmpty(x[6].Text ) || !string.IsNullOrWhiteSpace(x[6].Text ));
于 2013-06-12T18:45:18.180 回答
0

这将与您在上面所做的完全一样,只是删除了多余的部分。假设//do something here..块没有改变行值。

for (int i = 0; i < nameList.Count; i++)
{
     IList<IWebElement> rows = driver.FindElements(By.CssSelector("itd_1"));
     if (!string.IsNullOrWhiteSpace(rows[5]) && !string.IsNullOrWhiteSpace(rows[6]))
     {
        for (int k = 0; k < rows.Count; k++)
        {
              //do something here...
        }
    }
}
于 2013-06-12T19:52:03.503 回答