2017-07-26 51 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方法,而不是數組。 –