使用LINQ似乎是一个微不足道的任务(也可能确实如此),但我无法想象如何使用LINQ删除序列的最后一项。当然,使用Take并传递序列长度-1工作得很好。然而,在单行代码中链接多个LINQ时,这种方法似乎相当麻烦。
IEnumerable<T> someList ....
// this works fine
var result = someList.Take(someList.Count() - 1);
// but what if I'm chaining LINQ ?
var result = someList.Where(...).DropLast().Select(...)......;
// Will I have to break this up?
var temp = someList.Where(...);
var result = temp.Take(temp.Count() - 1).Select(...)........;
在Python中,我可以使用seq[0:-1]。我尝试将-1传递给Take方法,但它似乎不是我所需要的。