2017-07-26 58 views
-1

我有下面类型的对象阵列插入字符串值到对象阵列

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

我想在myArray的第一位置插入字符串值是否有任何方法 这样做的结果应该是象下面这样:

我想阵列像下面

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

[添加值的可能的复制到一个C#数组](https://stackoverflow.com/questions/202813/adding-values-to-ac-sharp-array) –

回答

3

如果你需要坚持使用数组:

myarray = new object[]{"logFile"}.Concat(myarray).ToArray(); 

经典的,非LINQ(和最有效的)方法是使用Array.Copy

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

或者相反:'myarray = myarray.Concat(new object [] {“logFile”})。ToArray();'。 –

+0

@Tim你的解决方案很好,但对初学者来说很复杂:) –

+1

@BRAHIMKamel使用(基本)Linq并不复杂。这只是一个将两个数组合并在一起的函数,转换为一个列表,然后在我看来插入更复杂的声音。 –

1

您可以切换到List<string>可以动态增长

List<string> myArray= new List<string> { "1", "Success"}; 

,并使用List.Insert

myArray.Insert(0,"LogFile"); 

从MSDN List.Insert如何工作

如果计数已经等于能力,该列表的容量增加了自动重新分配内部数组,和在添加新元素之前,现有元素被复制到新数组中。 如果index等于Count,则将项添加到List的末尾。

+0

你得到了什么异常 –

+0

是有一个插入https://msdn.microsoft.com /query/dev12.query?appId=Dev12IDEF1&l=EN-US&k=k(System.Collections。 Generic.List%601.Insert); k(TargetFrameworkMoniker-.NETFramework,Version%3Dv4.6.2); k(DevLang-csharp)&rd = true –

+1

您应该将'myArray'重命名为'myList' ...名字很漂亮当你有一个名为'myArray'的List时会感到困惑。 @John确保您在'System.Collections.Generic.List '上调用Insert方法,而不是数组。 –