c# - 具有多个输入参数的 Linq 表达式

标签 c# .net linq

我写了下面的代码,但我无法理解它是如何执行的。

class Program
{
    static void Main(string[] args)
    {
        int[] nums = { 1, 5, 10, 3, 554, 34};
        var nn = nums.TakeWhile((n, junk) => n > junk);
        nn.Count();
        foreach (var a in nn)
        {
            Console.WriteLine(a);
        }
        Console.ReadKey();
    }
}

首先,我将 TakeWhile 表达式写为 n => n > 5。我能够理解这一点。但我只是添加了一个参数junk。这里有什么垃圾?在查询执行期间分配给它的值是什么?它如何将输出作为 1、5 和 10。

最佳答案

junk 是当前处理的元素的索引 - 参见 http://msdn.microsoft.com/en-us/library/bb548775.aspx

更具可读性和稳定性

var nn = nums.TakeWhile((n, index) => n > index);

关于c# - 具有多个输入参数的 Linq 表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7751797/

相关文章:

c# - System.IO.FileInfo 不区分大小写的搜索

c# - 依赖注入(inject) wcf

c# - 在 Windows 应用程序的 EXE 中本地存储数据的最佳方法是什么

c# - DbContext 仅在远程服务器上超时

c# - Linq 返回一个字段或另一个

c# - 创建函数以循环访问 C# 中方法的属性?

c# - ReplaySubject.First() 意外阻塞

asp.net - 在 ASP.NET 网站项目中使用 64 位引用 - 设计时问题

.net - DataTables 和 LINQ 中的装箱/拆箱

c# - 如何使用 C#.NET 合并在 MS Word 中创建的表格的单元格?