从数组中删除第一个元素

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (107)

PHP开发人员在这里使用C#。我正在使用一种技术,通过将字符串分解为数组,然后将第一个元素移出数组,然后将剩余的字符串转换为字符串,从大字符串中删除一段文本。

用PHP(一个真棒和简单的语言),它只是

$array = explode('somestring',$string);
array_shift($array);
$newstring = implode(' ', $array);

我完成了。

我对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);
}
提问于
用户回答回答于

我对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);
}
用户回答回答于

C#的设计不是快速和肮脏的,也不是专门用于文本处理。此外,用于从一开始删除字符串的一部分的技术是疯狂的imho。

你为什么不String.Substring(int start, int length)结合使用String.IndexOf("your delimiter")

扫码关注云+社区

领取腾讯云代金券