2017-02-17 41 views
-4

我想將字符串添加到列表中的某個位置。我嘗試使用List.Insert()方法以及InsertRange()。兩者都給我錯誤。無法將文本插入列表<string>

 //Using InsertRange() Method 
    string[] msg = { "Hi", "There", 
         "Good", "Morning" }; 
    List<string> Lines=new List<string>; 
    Lines.InsertRange(4, msg); 

    //Using Insert() Method 
    string[] msg = { "Hi, Good Morning" }; 
    List<string> Lines=new List<string>; 
    Lines.Insert(1, msg); 

請建議解決方案。

+2

有這麼多的基本錯誤([這裏是一個編譯和運行類似的版本](https://dotnetfiddle.net/Ow6fuY)),我建議你購買一本關於C#編程的書。 –

回答

1

Insert方法需要一個signle string不是InsertRange一個array

Lines.Insert(1, msg[0]); 

而第一放慢參數是指數在其上插入。您將數組插入4th索引,而List Lines不具有4th index.

將數組插入0 index

Lines.InsertRange(0, msg); 
+0

這給了我一個錯誤 參數類型'字符串'不可分配給參數類型'System.COllections.Generic.IEnumerable '。 –

+0

什麼例外? – Mairaj

0

所有你必須修復代碼中的語法錯誤。首先,這是你必須聲明字符串列表如下:List<string> Lines=new List<string>();你的情況,你錯過了()(希望這不是一個錯字)。然後對於Insert和InsertRange,給定的索引應該是有效的。這意味着指定的索引將在集合中可用。

考慮的第一個片段中,InsertRange

集合爲空在這個階段,您要插入到索引4這是現階段無效並導致ArgumentOutOfRangeException。所以,你可以用

Lines.InsertRange(0, msg); 

嘗試,也嘗試的AddRange而不是爲InserRange,在這種情況下也是有幫助的:

Lines.AddRange(msg); 

現在讓我考慮的第二個片段。使用.Insert方法,您可以將一個項目添加到收集到一個有效的索引。但在你的情況下,你試圖插入一個字符串數組到一個列表中的索引,這是不允許的,你必須給一個字符串,而不是數組。記住這裏還有一點,索引是一個應該有效的重要因素。如果你不想讓新元素處於特定的位置,你可以嘗試.Add()。它將被添加到最後的位置。

+0

是的,我已經定義列表爲msg = new列表(10) –

+0

@BhushanKhajone:您正在將字符串的大小限制爲「10」,那麼爲什麼不繼續使用數組呢?無論如何,我已經更新了答案,你可以請看一下嗎? –