计算一个数字在该列表范围内出现的次数

时间:2015-12-25 21:43:48

标签: c# linq

我需要计算实数int n;出现在我的列表中的次数,但棘手的部分是在list.Count-xlist.Count-y之间的列表的特定范围内

3 个答案:

答案 0 :(得分:3)

您可以使用SkipTake来获得所需的范围:

var count = list
    .Skip(startIndex)
    .Take(length)
    .Count(i => i == n);

答案 1 :(得分:1)

Linq让事情变得简单。

int start = 3;
int range = 5;
int search = -8;
var result = list.Skip(start).Take(range).Count(i => i == search);

这将从start开始,最多可计入start + range

答案 2 :(得分:0)

您还可以使用Where重载:

var result = list.Where((elem, index) => elem == n 
                                         && index >= list.Count -x  
                                         && index <= list.Count - y)
                 .Count();

另一种选择:

var result = list.GetRange(startIndex, cnt).Count(elem => elem == n);