【问题标题】:Getting Nth value with Linq使用 Linq 获取第 N 个值
【发布时间】:2010-03-16 08:31:37
【问题描述】:

如何使用 Linq 获取第 N 行?两列都是文本,所以我不能使用 min/max

【问题讨论】:

    标签: linq


    【解决方案1】:
    var nthItem = items.Skip(n).First();
    

    【讨论】:

    • Skip(int count) count:在返回剩余元素之前要跳过的元素数。 因此,如果我们跳过 n,我们会得到第 n 个索引而不是第 n 个元素(从1),不是吗?喜欢这个答案:stackoverflow.com/a/824652/3958365
    【解决方案2】:

    另一种选择(.Net 3.5 及更高版本)是使用 ElementAtOrDefault。

    var nthItem = items.ElementAtOrDefault(n-1);
    

    方法的索引是从零开始的,所以如果你想要第三个元素,你传递 2 作为索引。

    【讨论】:

      【解决方案3】:

      你可以使用skip和take。

      var result = myData.OrderBy(<your order by>).Skip(5).Take(1);
      

      【讨论】:

      • Take 不返回一个项目,它返回一个序列(在这种情况下只有一个元素)。
      • @Mark:确实如此,而且我认为我们最好给 OP 两个选项。
      【解决方案4】:
      var nthItem = items.Skip(n-1).FirstOrDefault();
      

      【讨论】:

        【解决方案5】:

        你可以使用 order by 和 skip

        var nthItem = items.OrderByDescending(<your order by>).skip(n-1).FirstOrDefault();
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2012-02-02
          • 2018-10-21
          • 2018-08-07
          • 2013-12-28
          • 1970-01-01
          • 2021-05-13
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多