List 集合取值有关问题

List 集合取值问题
比如集合中存bool值 我想取得:比如前一个点是true 后面点是false 的点 不想使用 循环方式判断有什么其他办法?

------解决方案--------------------
List<bool> list=new List<bool>(){true,true,false,false,false,true,true,false};
var
query = list.Zip(list.Skip(1), (x, y) => new { x, y }).Select((x, i) => new { x, i }).Where(x => x.x.x != x.x.y).Select(x => x.i);