首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >从数组中删除第一个元素

从数组中删除第一个元素
EN

Stack Overflow用户
提问于 2012-02-10 06:35:26
回答 7查看 41.2K关注 0票数 18

PHP开发人员在这里与c#合作。我正在使用一种技术从一个大字符串中删除文本块,方法是将字符串分解为一个数组,然后将第一个元素移出该数组,然后将剩余部分转换回一个字符串。

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

代码语言:javascript
复制
$array = explode('somestring',$string);
array_shift($array);
$newstring = implode(' ', $array);

我就完事了。

我对c#非常生气,因为它不允许我创建动态数组,也不给我提供默认函数,这些函数可以在数组方面做与PHP相同的事情。我必须创建列表和预定义键结构等,而不是动态数组。但是我是个新手,我相信仍然有同样优雅的方法可以用c#做同样的事情。

谁能给我展示一种用c#实现这个目标的干净方法?

问题的另一种表述:如何使用c#代码从数组中删除第一个元素。

下面是我所取得的进展,但是RemoveAt在调试时抛出了一个错误,所以我不相信它能正常工作:

代码语言:javascript
复制
//scoop-out feed header information
if (entry_start != "")
{
    string[] parts = Regex.Split(this_string, @entry_start);
    parts.RemoveAt(0);
    this_string = String.Join(" ", parts);
}
EN

回答 7

Stack Overflow用户

回答已采纳

发布于 2012-02-10 06:39:56

因为c#不允许我创建动态数组,我对

非常生气

您可以看看List类。它的RemoveAt可能值得一查。

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

代码语言:javascript
复制
if (entry_start != "")
{
    string[] parts = Regex.Split(this_string, @entry_start).Skip(1).ToArray();
    this_string = String.Join(" ", parts);
}
票数 38
EN

Stack Overflow用户

发布于 2012-02-10 06:42:24

C#并不是被设计成既快捷又脏的,它也不是专门处理文本操作的。此外,用于从开头删除字符串的某些部分的技术是疯狂的imho。

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

票数 11
EN

Stack Overflow用户

发布于 2012-02-10 06:44:19

下面是对应的C#代码:

代码语言:javascript
复制
string input = "a,b,c,d,e";
string[] splitvals = input.Split(',');
string output = String.Join(",", splitvals, 1, splitvals.Length-1);
MessageBox.Show(output);
票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9219958

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档