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")?
这是相应的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)