我想在特定位置将字符串添加到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);
请建议解决方案。
答案 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()。它将被添加到最后一个位置。