假设我有一个序列.
IEnumerable<int> sequence = GetSequenceFromExpensiveSource();
// sequence now contains: 0,1,2,3,...,999999,1000000
Run Code Online (Sandbox Code Playgroud)
获取序列并不便宜并且是动态生成的,我想只迭代一次.
我想得到0 - 999999(即除了最后一个元素之外的所有东西)
我知道我可以这样做:
sequence.Take(sequence.Count() - 1);
Run Code Online (Sandbox Code Playgroud)
但是这导致了两个大序列的枚举.
是否有LINQ结构可以让我这样做:
sequence.TakeAllButTheLastElement();
Run Code Online (Sandbox Code Playgroud) 我有一个像这样的字符串数组.
string[] queries 数据多个字符串.
我想跳过元素中的最后一个字符串并取剩余的字符串.我想出来了
var remStrings = queries.Reverse().Skip(1).Take(queries.Length - 1);
Run Code Online (Sandbox Code Playgroud)
有更好的替代方案吗?
我们都知道,它Skip()可以忽略收集开始时不需要的记录。
但是Skip()在收集结束时是否有记录的方法?
您如何不获取集合中的最后一条记录?
还是您必须通过 Take()
即下面的代码,
var collection = MyCollection
var listCount = collection.Count();
var takeList = collection.Take(listCount - 1);
Run Code Online (Sandbox Code Playgroud)
这是排除集合中最后一条记录的唯一方法吗?