如何在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来优雅地停止它。