使用Lambda表达式计算List中的整数值

时间:2017-08-07 13:14:23

标签: c# windows lambda

我有一个这样的清单:

        myList.Add(1);
        myList.Add(1);
        myList.Add(3);
        myList.Add(4);
        myList.Add(5);
        myList.Add(6);

我想找到'1到索引为4的数量。所以,在这种情况下,结果应该是2。

我如何在Count()中添加条件。

我需要符合n<2 && n>0 (i.e. n==1) 标准的整数数。

2 个答案:

答案 0 :(得分:4)

您只关心列表中的前4个条目(正如您所说,具有较高索引的值无关紧要)。

首先,将搜索限制为这四个数字:

myList.Take(4)

从这些中,您只想计算1的条目。您可以使用带有谓词的Count() linq扩展来实现这一点:

int numberOfOnes = myList.Take(4).Count(i => i == 1);

答案 1 :(得分:1)

int value = myList.Take(4).Where(w=>w == 1).Sum()

此外,&#39;哪里&#39;有一个不太常用的重载提供索引:myList.Where((w,ix)=>ix < 4 && w == 1).Sum().

我可能会因为可读性和性能原因而使用.Take()(参见@mwwills评论)。