我使用的语言是C#。
假设我们有一个IEnumerable,这是linq查询的结果。 T是匿名类型。 如果我们想要访问此类型的元素,最好的方法是什么。
我认为有两种方式。
1)将IEnumerable转换为List,然后访问元素。
List<T> list = result.ToList();
for(int rowIndex=0; rowIndex<list.Count; rowIndex++)
{
double x = list[rowIndex].val;
}
2)
for(int rowIndex=0; rowIndex<result.Count(); rowIndex++)
{
double x = result.ElementAt(rowIndex).val;
}
我之所以如此思考,除了访问IEnumerable的元素之外,我需要他们的索引。换句话说,如果一个元素是第一个,那么第二个等。
提前感谢您的帮助!
答案 0 :(得分:10)
您不需要创建集合,使用{0}的int
变量并在foreach
中增加它。然后你有索引和元素。
int index = 0;
foreach(var x in result)
{
// x is the element and index the current index
Console.WriteLine("Val:{0} Index:{1}", x.val, index);
index ++;
}