如何将for循环的方法转换为linq

时间:2019-05-23 18:47:19

标签: linq loops for-loop each

如何在c#中将带有循环的此方法转换为Linq

public void SelectDataTypeByFieldName(string fieldName, string dataType)
        {
            var fieldNameRows = Driver.FindElements(_fieldNameText);
            var dataTypeArrows = Driver.FindElements(_dataTypeArrow);
            var dataTypeDropDown = Driver.FindElements(_dataTypeDropDown);

            for (int i = 0; i < fieldNameRows.Count; i++)
            {
                string fieldNameValue = fieldNameRows[i].GetAttribute("value");
                if (!fieldNameValue.Equals(fieldName))
                {
                    continue;
                }
                WaitUtils.WaitForElementClickable(_dataTypeArrow);
                dataTypeArrows[i].Click();
                WaitUtils.WaitForElementVisible(_dataTypeArrow);

                break;
            }

            foreach (IWebElement element in dataTypeDropDown)
            {
                var dataTypeOptions = element.FindElements(By.XPath("li"));

                foreach (IWebElement option in dataTypeOptions.Where(option => option.Text.Equals(dataType)))
                {
                    WaitUtils.WaitForElementClickable(element);
                    option.Click();
                }
                    break;
                }
        }

我必须使它看起来更有效率,并且如果可能的话,不要使用break来优雅地停止它。

0 个答案:

没有答案