Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 编辑数组元素_C#_Arrays - Fatal编程技术网

C# 编辑数组元素

C# 编辑数组元素,c#,arrays,C#,Arrays,我有一个驱动器号数组,需要在每个驱动器号后面加一个冒号,然后将数组传递给另一个函数。我可以这样做还是需要创建一个新数组?或者可能根本不是数组,而是某种列表 string source = "C|D|E"; string[] sourcearray = source.Split('|'); foreach (string driveletter in sourcearray) { //need to append ":" to each drive letter } 编辑:有时源数组可能

我有一个驱动器号数组,需要在每个驱动器号后面加一个冒号,然后将数组传递给另一个函数。我可以这样做还是需要创建一个新数组?或者可能根本不是数组,而是某种列表

string source = "C|D|E";
string[] sourcearray = source.Split('|');
foreach (string driveletter in sourcearray)
{
    //need to append ":" to each drive letter
}
编辑:有时源数组可能以管道结尾:

string source = "C|D|E|";
当这种情况发生时,如果我使用公共for循环,数组中的最后一个元素将是冒号,而我不能使用这个。如何最好地处理这个问题?发生这种情况时,最终阵列需要如下所示:

C: D: E:

谢谢。

将for循环替换为

 string[] resultArray = sourcearray.Select(s => s + ":").ToArray();
重新编辑:

  string source = "C|D|E|";
这里最好的解决方案是对
string.Split()
方法的特殊修改。不幸的是,需要一个分隔符数组,因此我们得到:

sourceArray = source.Split(new char[] {'|'}, 
          StringSplitOptions.RemoveEmptyEntries);

字符串是不可变的,因此不能更改字符串实例,但必须使用新字符串更改数组插槽:

string source = "C|D|E";
string[] sourcearray = source.Split(new []{'|'}, StringSplitOptions.RemoveEmptyEntries);
for(int i=0; i < sourcearray.Length; i++)
{
   sourcearray[i] = sourcearray[i] + ":";
}
string source=“C | D | E”;
string[]sourcearray=source.Split(新的[]{'|'},StringSplitOptions.RemoveEmptyEntries);
for(int i=0;i
for(var i=0;i
这家伙显然是C#的新手,我不确定Lambda表达式是否是合适的解决方案…@KristianFenn:这就是为什么他需要了解Lambda表达式的原因。谢谢。编辑了特定情况下的问题。@SixHouse:您可以使用Split重载跳过空条目,请检查我的编辑。对于编辑:您可以告诉Split函数忽略空值。检查函数重载。
for (var i = 0; i < sourcearray.Length; i++)
{
   sourceArray[i] += ":";
}
string[] sourcearray = source.Split('|').Select(s => s + ":").ToArray();
var newArray = source.Split('|').Select(s => s + ":").ToArray();