0

我正在尝试对 IList 进行排序,我尝试了不同的方法,但都没有奏效

这是我的代码的样子:

IList<IWebElement> listCountIdsUi = driver.FindElements(By.CssSelector("table#ct_ tr td:nth-of-type(1)"));

List<Int32> ui = new List<Int32>();

foreach (IWebElement option in listCountIdsUi)
{
    if (!option.Text.ToString().StartsWith("Page"))
    {
        ui.Add(Convert.ToInt32(option.Text));
    }
}

我能想出的唯一方法是与ArrayList

 ArrayList al = new ArrayList(ui);
 al.Sort();

不能使用 IList 吗?

4

3 回答 3

2

OrderBy不会修改基础集合 - 它返回一个IEnumerable按您要求的顺序为您提供项目的项目。所以你有几个选择:

  1. 使用List.Sort(),它确实修改了基础集合:

    ui.Sort();
    
  2. 将排序列表存储在新变量中

    var uiSorted = ui.OrderBy(s => s);
    
  3. 替换现有参考

    ui = ui.OrderBy(s => s).ToList();
    
于 2013-06-17T15:20:00.047 回答
1

你试过这个List<T>.Sort方法吗?

ui.Sort((a, b) => a.CompareTo(b));
于 2013-06-17T15:14:04.897 回答
0

var uiOrdered = ui.OrderBy(s => s).ToList()应该是您需要做的所有事情。

于 2013-06-17T15:13:44.103 回答