C# 向对象数组插入字符串值

C# 向对象数组插入字符串值,c#,arrays,C#,Arrays,下面是object类型的数组 object[] myarray = new object[] { "1", "Success"}; 我想在myarray的第一个位置插入字符串值,有什么方法吗 为此,结果应如下所示: 我想要下面这样的数组 object[] myarray = new object[] { "logFile","1", "Success"}; 您可以切换到可以动态增长的列表 List<string> myArray= new List<string>

下面是object类型的数组

object[] myarray = new object[] { "1", "Success"};
我想在myarray的第一个位置插入字符串值,有什么方法吗 为此,结果应如下所示:

我想要下面这样的数组

object[] myarray = new object[] { "logFile","1", "Success"};

您可以切换到可以动态增长的
列表

  List<string> myArray= new List<string> { "1", "Success"};
从MSDN列表.Insert如何工作

如果计数已经等于容量,则通过自动重新分配内部数组来增加列表的容量,并且在添加新元素之前将现有元素复制到新数组中。
如果index等于Count,则项将添加到列表的末尾。

如果需要使用数组:

myarray = new object[]{"logFile"}.Concat(myarray).ToArray();
经典的非LINQ(也是最有效的)方法是使用
数组。复制

var newArray = new object[myarray.Length + 1];
newArray[0] = "logFile";
Array.Copy(myarray, 0, newArray, 1, myarray.Length);
// myarray = newArray;

可能与您遇到的异常重复是的,有一个插入项,您应该将
myArray
重命名为
myList
。。。当您有一个名为
myArray
的列表时,名称非常混乱@John请确保您在
System.Collections.Generic.List
而不是数组上调用Insert方法。@IanH。是的,你是对的,但为了简单起见,我将其命名为arrayList myArray1=File.ReadAllLines(ScriptPath+“\\executionresult.txt”);或者反过来说:
myarray=myarray.Concat(新对象[]{“logFile”}).ToArray()
@Tim您的解决方案很好,但对于初学者来说很复杂:)@BRAHIMKamel使用(基本)Linq一点也不复杂。这只是一个将两个数组合并在一起的函数,转换成一个列表,然后插入声音,在我看来要复杂得多。@BRAHIMKamel;你觉得LINQ的方式很复杂吗?然后看看使用
Array.Copy的经典方法,我现在已经添加了;-)好的,我知道这是LINQ的主要目标,用更少的代码做更多的事情,但是OP会逃避,因为它有一个内置的类
var newArray = new object[myarray.Length + 1];
newArray[0] = "logFile";
Array.Copy(myarray, 0, newArray, 1, myarray.Length);
// myarray = newArray;