Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jsf-2/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 拆分空格上的字符串并删除空条目_C# - Fatal编程技术网

C# 拆分空格上的字符串并删除空条目

C# 拆分空格上的字符串并删除空条目,c#,C#,我正在像这样拆分字符串: string[] elements = templine.Split (space, StringSplitOptions.RemoveEmptyEntries); var elements = templine.Split(space, StringSplitOptions.RemoveEmptyEntries).Skip(1).ToArray(); 如何从templine中获取除[1]之外的所有元素并将其分

我正在像这样拆分字符串:

string[] elements = templine.Split
                            (space, StringSplitOptions.RemoveEmptyEntries);
var elements = templine.Split(space, StringSplitOptions.RemoveEmptyEntries).Skip(1).ToArray();

如何从templine中获取除[1]之外的所有元素并将其分配给string[]元素?

如果可以使用Linq,您可能可以执行以下操作:

IEnumerable<string> elements = templine.Split(...).Take(1).Skip(1);

如果您可以使用Linq,您可能可以:

IEnumerable<string> elements = templine.Split(...).Take(1).Skip(1);

使用Linq,您可以

IEnumerable<String> elements = 
  empline.Split(space, StringSplitOptions.RemoveEmptyEntries);
String[] result = 
 elements
 .Take(1)
 .Concat(elements
 .Skip(2))
 .ToArray();

使用Linq,您可以

IEnumerable<String> elements = 
  empline.Split(space, StringSplitOptions.RemoveEmptyEntries);
String[] result = 
 elements
 .Take(1)
 .Concat(elements
 .Skip(2))
 .ToArray();

你可以问问你哥哥

或者你可以这样做:

string[] elements = templine.Split
                            (space, StringSplitOptions.RemoveEmptyEntries);
var elements = templine.Split(space, StringSplitOptions.RemoveEmptyEntries).Skip(1).ToArray();
这将为您提供一个包含除第一个元素以外的所有元素的数组。如果你想要第一个,而不是你的问题所暗示的第二个,你可以这样做:

var allElements = templine.Split(space, StringSplitOptions.RemoveEmptyEntries);
var someElements = allElements.Take(1).Concat(allElements.Skip(2)).ToArray();

你可以问问你哥哥

或者你可以这样做:

string[] elements = templine.Split
                            (space, StringSplitOptions.RemoveEmptyEntries);
var elements = templine.Split(space, StringSplitOptions.RemoveEmptyEntries).Skip(1).ToArray();
这将为您提供一个包含除第一个元素以外的所有元素的数组。如果你想要第一个,而不是你的问题所暗示的第二个,你可以这样做:

var allElements = templine.Split(space, StringSplitOptions.RemoveEmptyEntries);
var someElements = allElements.Take(1).Concat(allElements.Skip(2)).ToArray();
如果你想删除第二个元素

string[] elements = templine.Split
        (space, StringSplitOptions.RemoveEmptyEntries).Where((s, i) => i != 1).ToArray();
如果你想删除第二个元素

string[] elements = templine.Split
        (space, StringSplitOptions.RemoveEmptyEntries).Where((s, i) => i != 1).ToArray();

这里有很多疯狂的LINQ例子。如果这对您很重要,这可能会更有效率:

public static T[] SkipElement<T>(this T[] source, int index)
{
    // Leaving out null/bounds checking for brevity.
    T[] array = new T[source.Length - 1];
    Array.Copy(source, 0, array, 0, index);
    Array.Copy(source, index + 1, array, index, source.Length - index - 1);
    return array;
}

这里有很多疯狂的LINQ例子。如果这对您很重要,这可能会更有效率:

public static T[] SkipElement<T>(this T[] source, int index)
{
    // Leaving out null/bounds checking for brevity.
    T[] array = new T[source.Length - 1];
    Array.Copy(source, 0, array, 0, index);
    Array.Copy(source, index + 1, array, index, source.Length - index - 1);
    return array;
}
在上面的代码之后:

elements = elements.Take(1).Concat(elements.Skip(2)).ToArray();
我想指出一点:Take和Skip不会抛出错误,即使原始元素太短;它们只会生成可以安全连接的空IEnumerables,并且可以安全调用其方法。

在上面的代码之后:

elements = elements.Take(1).Concat(elements.Skip(2)).ToArray();


我想指出一点:Take和Skip不会抛出错误,即使原始元素太短;它们只会生成可以安全连接的空IEnumerables,以及可以安全调用的方法。

1是第一个元素,对吗?我需要跳过第二个元素,[0]是第一个元素对吗?1是第一个元素对吗?我需要跳过第二个,[0]是第一个,对吗?这将引发编译时异常,您需要将其强制转换为数组或使元素为IEnumerable。它不会引发编译时异常此注释是在我编辑之后出现的,除非您指的是我忽略了实际参数,我认为一个相当聪明的人会理解我的意思。虽然我承认我的解决方案不正确。这将引发编译时异常,您需要将其强制转换为数组或使元素为IEnumerable。它不会引发编译时异常此注释是在我编辑之后出现的,除非您指的是我忽略了实际参数,我认为一个相当聪明的人会理解我的意思。虽然我承认我的解决方案是错误的。那不是应该被删除吗?那不是应该被删除吗?+1!这是唯一一个能做OP想要做的事的。@msarchet:我没有说我做,只是我尝试了:-+1!这是唯一一个能完成OP想要的任务的。@msarchet:我没有说我会,只是我尝试了:-@justin抱歉不清楚,我只想拆分那个字符串,把它放到字符串数组中,但不包括第二个元素谢谢,我一开始误解了你的问题。@justin抱歉不清楚,我只想拆分那个字符串,把它放在字符串数组中,但不包括第二个元素谢谢,一开始我误读了你的问题。必须注意,我确实对井发笑了,你可以在周五的结尾问你Jon兄弟的意见……好吧,我很高兴有人抓住了它!必须注意的是,事实上我是在笑这个井,你可以问你的兄弟乔恩对这个星期五的尾声的评论…好吧,我很高兴有人抓住了它!