如何通过索引访问 IReadOnlyCollection 的元素?
How can I access a element of a IReadOnlyCollection through it index?
我正在使用 selenium,我正在使用 FindElements 函数,所以我得到了一个实现 IReadOnlyCollection 接口的元素。我想遍历列表,但 IReadOnlyCollection 似乎没有任何方法,如 Get(int index) 或操作 [].
的实现
我想避免将结果转换为列表或数组,因为我只想访问元素以读取它们。
目前我不想使用 foreach,因为我需要管理索引以便我可以将这些元素添加到另一个数组。
这就是我想要做的:
public void fillMatrix(){
IReadOnlyCollection<IWebElement> rows = Driver.FindElements(By.XPath("./*/tr"));
IReadOnlyCollection<IWebElement> elements;
matrix = new IControl[rows.Count()][];
for(int i = 0; i < matrix.Count(); ++i){
matrix[i] = rows[i].FinElements("./td").toArray();
}
}
谢谢
对索引值使用 ElementAt(int) 函数。
这是 ElementAt(int) 函数的 MSDN link https://msdn.microsoft.com/en-us/library/bb299233(v=vs.110).aspx
我没有使用只读集合,但从 MSDN 文档来看,似乎可以使用 ElementAt
方法获取给定索引处的元素。它应该像这样工作:
IReadOnlyCollection<IWebElement> rows = Driver.FindElements(By.XPath("./*/tr"));
int index = 1; // sample
var row = rows.ElementAt(index)
您可能需要在 class 中添加 using System.Linq;
语句,因为 ElementAt()
是 Linq 提供的扩展方法。
我正在使用 selenium,我正在使用 FindElements 函数,所以我得到了一个实现 IReadOnlyCollection 接口的元素。我想遍历列表,但 IReadOnlyCollection 似乎没有任何方法,如 Get(int index) 或操作 [].
的实现我想避免将结果转换为列表或数组,因为我只想访问元素以读取它们。
目前我不想使用 foreach,因为我需要管理索引以便我可以将这些元素添加到另一个数组。
这就是我想要做的:
public void fillMatrix(){
IReadOnlyCollection<IWebElement> rows = Driver.FindElements(By.XPath("./*/tr"));
IReadOnlyCollection<IWebElement> elements;
matrix = new IControl[rows.Count()][];
for(int i = 0; i < matrix.Count(); ++i){
matrix[i] = rows[i].FinElements("./td").toArray();
}
}
谢谢
对索引值使用 ElementAt(int) 函数。
这是 ElementAt(int) 函数的 MSDN link https://msdn.microsoft.com/en-us/library/bb299233(v=vs.110).aspx
我没有使用只读集合,但从 MSDN 文档来看,似乎可以使用 ElementAt
方法获取给定索引处的元素。它应该像这样工作:
IReadOnlyCollection<IWebElement> rows = Driver.FindElements(By.XPath("./*/tr"));
int index = 1; // sample
var row = rows.ElementAt(index)
您可能需要在 class 中添加 using System.Linq;
语句,因为 ElementAt()
是 Linq 提供的扩展方法。