在 LINQWhere中是一个流式操作符。Where-asOrderByDescending是非流媒体运营商。AFAIK,流媒体运营商只收集下一个必要的项目。非流式操作符一次评估整个数据流。
我看不到定义 Streaming Operator 的相关性。对我来说,延迟执行是多余的。以我编写了一个自定义扩展并使用 where 运算符和 orderby 使用它的示例为例。
public static class ExtensionStuff
{
    public static IEnumerable<int> Where(this IEnumerable<int> sequence, Func<int, bool> predicate)
    {
        foreach (int i in sequence)
        {
            if (predicate(i))
            {
                yield return i;
            }
        }
    }
}
    public static void Main()
    {
        TestLinq3();
    }
    private static void TestLinq3()
    {
        int[] items = { 1, 2, 3,4 };
        var selected = items.Where(i => i < 3)
                            .OrderByDescending(i => i);
        Write(selected);
    }
    private static void Write(IEnumerable<int> selected)
    {
        foreach(var i in selected)
            Console.WriteLine(i);
    }
无论哪种情况,Where都需要评估每个元素以确定哪些元素满足条件。它产生的事实似乎只是因为操作员获得了延迟执行而变得相关。  
那么,流媒体运营商的重要性是什么?