IEnumerable类型中的最佳访问元素

时间:2013-12-03 14:08:12

标签: c#

我使用的语言是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的元素之外,我需要他们的索引。换句话说,如果一个元素是第一个,那么第二个等。

提前感谢您的帮助!

1 个答案:

答案 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 ++;
}