从数组中删除第一个元素
本文关键字:第一个 元素 删除 数组 | 更新日期: 2023-09-27 18:23:53
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# 不是为快速和肮脏而设计的,也不是特别擅长文本操作。此外,您用于从头开始删除字符串某些部分的技术恕我直言。
你为什么不直接使用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);
您可以使用 LINQ 来实现此目的:
if (entry_start != "")
this_string = String.Join(" ", Regex.Split(this_string, @entry_start).Skip(1).ToArray());
string split = ",";
string str = "asd1,asd2,asd3,asd4,asd5";
string[] ary = str.Split(new string[] { split }, StringSplitOptions.RemoveEmptyEntries);
string newstr = string.Join(split, ary, 1, ary.Count() - 1);
在 ","处拆分。删除第一条记录。然后与 "," 合并回来
如上所述,您可以使用 LINQ。 Skip(int)
将返回一个IEnumerable<string>
,然后您可以将其转换为数组。
string[] myArray = new string[]{"this", "is", "an", "array"};
myArray = myArray.Skip(1).toArray();
您可能更喜欢泛型列表而不是数组,数组的工作方式更像 PHP 数组。
列表<T>
但是,如果您的目标是"从大字符串中删除文本块",那么更简单的方法是:
string Example = "somestring";
string BlockRemoved = Example.Substring(1);
// BlockRemoved = "omestring"
编辑
我误解了这个问题,认为您只是从数组中删除第一个元素,其中数组由构成字符串的字符组成。
若要按分隔符拆分字符串,请改为查看 String.Split
方法。这里给出了一些很好的例子。