从数组中删除第一个元素

atw*_*pub 18 c#

PHP开发人员在这里使用c#.我正在使用一种技术从一个大字符串中删除一个文本块,方法是将字符串爆炸成一个数组,然后将第一个元素移出数组并将剩余的元素转换为字符串.

使用PHP(一种令人敬畏的简单语言)它只是

$array = explode('somestring',$string);
array_shift($array);
$newstring = implode(' ', $array);
Run Code Online (Sandbox Code Playgroud)

我已经完成了

我对c#感到非常生气,因为它不允许我创建动态数组,也没有为我提供默认函数,这些函数可以做与PHP相关的数组操作.而不是动态数组我必须创建列表和预定义键结构等.但我是新的,我相信仍然有同样优雅的方式来做同样的c#.

有人会用c#向我展示一个干净的方法来实现这个目标吗?

问题的改:如何使用c#代码从数组中删除第一个元素.

这是我已经走了多远,但是在调试时RemoveAt会抛出错误,所以我不相信它有效:

//scoop-out feed header information
if (entry_start != "")
{
    string[] parts = Regex.Split(this_string, @entry_start);
    parts.RemoveAt(0);
    this_string = String.Join(" ", parts);
}
Run Code Online (Sandbox Code Playgroud)

Dar*_*rov 38

由于不允许我创建动态数组,我对c#非常生气

你可以看一下List<T>课程.它的RemoveAt可能值得检查.

但是对于您的特定场景,您可以简单地使用LINQ和Skip扩展方法(不要忘记添加using System.Linq;到您的文件中以使其进入范围):

if (entry_start != "")
{
    string[] parts = Regex.Split(this_string, @entry_start).Skip(1).ToArray();
    this_string = String.Join(" ", parts);
}
Run Code Online (Sandbox Code Playgroud)


Rom*_*ter 11

C#不是设计得快速而肮脏,也不是特别擅长于文本操作.此外,您从一开始就用于删除字符串的某些部分的技术是疯狂的imho.

你为什么不加String.Substring(int start, int length)String.IndexOf("your delimiter")


Joh*_*ner 7

这是相应的C#代码:

string input = "a,b,c,d,e";
string[] splitvals = input.Split(',');
string output = String.Join(",", splitvals, 1, splitvals.Length-1);
MessageBox.Show(output);
Run Code Online (Sandbox Code Playgroud)