我有一个包含以下项目的字符串数组:
string s = "M,k,m,S,3,a,5,E,2,Q,7,E,8,J,4,Y,1,m,8,N,3,P,5,H";
var items = s.split(',');
var topThree = items.Take(3);
var alternating1 = items.Skip(3).Take(1).Skip(1).Take(1).Skip(1).Take(1).Skip(1).Take(1);
alternating1变量中没有任何内容,我想我理解为什么。在Skip之后然后Take it返回1项,然后它尝试Skip(1)和Take(1),但那里什么都没有。
有没有办法可以做这种交替模式?
答案 0 :(得分:11)
最简单的方法是使用带有索引的Where
重载:
var alternating = input.Where((value, index) => (index & 1) == 0);
或者使用% 2
代替,等同于:
var alternating = input.Where((value, index) => (index % 2) == 0);