【发布时间】:2010-11-12 16:01:12
【问题描述】:
使用 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 方法,但它似乎没有做我需要的。
【问题讨论】: