阻止 IEnumerable 枚举所有元素

Stop IEnumerable from enumerating through all elements

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

注意:由于只有两个元素,我尝试将它们分别传入(例如 double double),但它仍然 运行 都通过了。

您可以使用 Take 方法来做这样的事情:

profile = profile.Take(1);

现在,当您枚举 profile 时,您只会经过一项。

显示以下代码:

Returning 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;
    }
}