相关疑难解决方法(0)

如何使用LINQ获取序列中的最后一个元素?

假设我有一个序列.

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)

.net c# linq

120
推荐指数
7
解决办法
4万
查看次数

使用LINQ删除最后一项

可能重复:
如何使用LINQ获取序列中除最后一个元素之外的所有元素?

看起来像是一个简单的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(...)........;
Run Code Online (Sandbox Code Playgroud)

在Python中,我可以做seq [0:-1].我尝试将-1传递给Take方法,但它似乎没有做我需要的东西.

c# linq

34
推荐指数
3
解决办法
2万
查看次数

C# - string[] 不包含“SkipLast”的定义并且没有可访问的扩展方法

.NET 框架 4.7.2。Visual Studio 2019。有关此错误的其他帖子中没有具体解决此问题。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Stuff
{
    class Program
    {
        static void Main(string[] args)
        {
         string firstPart = "ABC 123 XYZ";
         string firstPartMinusLast = string.Join(" ", firstPart.Split(' ').SkipLast(1));
         Console.WriteLine(firstPartMinusLast);
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

我收到一个 Intellisense 错误SkipLast

string[] 不包含“SkipLast”的定义,并且找不到接受“string[]”类型的第一个参数的可访问扩展方法“SkipLast”(您是否缺少 using 指令或程序集引用?)

根据我可以在网上找到的任何文档,using System.Linq应该涵盖这种方法吗?

c#

3
推荐指数
1
解决办法
2807
查看次数

如何从c#中的字符串数组中获取最后三个元素

我在c#中有一个字符串数组.现在根据我的要求,我必须得到最后一个,倒数第二个和在字符串中倒数第二个元素之前的一个元素,但我没有得到如何得到它.这是我的字符串数组.使用Last()我能够获得最后一个元素,但是最后一个元素,然后在倒数第二个之前我无法找到答案.

 string[] arrstr = str.Split(' ');
Run Code Online (Sandbox Code Playgroud)

随着.Last()我能够得到最后一个元素,但我无法得到其余的元素.请帮我..

c# arrays string

1
推荐指数
1
解决办法
2984
查看次数

标签 统计

c# ×4

linq ×2

.net ×1

arrays ×1

string ×1