阻止IEnumerable枚举所有元素

时间:2016-01-11 22:08:14

标签: c# ienumerable

如何阻止IEnumberable枚举相关变量中的所有元素。 我有一个函数,我将IEnumerable列表传递给它,它将始终只有两个元素。但是,我需要该函数只运行第一个元素,不多也不少。我怎么才能让它只通过第一个元素?

注意:由于只有两个元素,我尝试单独传递它们(例如double double),但它仍然贯穿两者。

2 个答案:

答案 0 :(得分:1)

您可以使用Take方法执行以下操作:

profile = profile.Take(1);

现在,当您枚举profile时,您只会浏览一个项目。

答案 1 :(得分:0)

以下代码显示:

  

返回0

确认实际上只评估了其中一个项目。

public static void Main()
{
    var numbers = GetNumbers(2);

    var result = numbers.Take(1);

    // Evaluate only first number
    result.ToArray();       
}

public static IEnumerable<int> GetNumbers(int max)
{
    for(int i = 0; i < max; i++) 
    {
        Console.WriteLine("Returning {0}", i); 
        yield return i;
    }
}