无法将文本插入List <string>

时间:2017-02-17 06:25:04

标签: c# list

我想在特定位置将字符串添加到List中。我尝试使用List.Insert()方法以及InsertRange()。两个都给我错误。

     //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 个答案:

答案 0 :(得分:1)

Insert方法需要signle string而不是array

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

InsertRange的第一个参数是要插入的索引。您正在4th索引上插入数组,List Lines没有4th index.

0 index上插入数组。

Lines.InsertRange(0, msg);

答案 1 :(得分:0)

首先,您必须修复代码中的语法错误,即您必须声明一个字符串列表,如下所示:List<string> Lines=new List<string>();您错过了()(希望它不是一个错字)。然后对于Insert和InsertRange,给定的索引应该是有效的。这意味着指定的索引将在集合中可用。

考虑第一个代码段InsertRange

此阶段的集合为空,您试图插入到此阶段无效的索引4并导致ArgumentOutOfRangeException。所以你可以试试

 Lines.InsertRange(0, msg);

并尝试使用AddRange代替InserRange,这在这种情况下也很有用:

Lines.AddRange(msg);

现在让我考虑第二个片段。使用.Insert方法,您可以将集合中的项插入到有效索引中。但在您的情况下,您尝试将一个字符串数组插入List中的索引,这是不允许的,您必须为数组提供单个字符串。记住一件事,索引也是一个有效的重要因素。如果您不想在特定位置想要新元素,也可以尝试.Add()。它将被添加到最后一个位置。