我想在某些位置将字符串添加到列表中。我尝试使用List.Intert()方法以及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);
请建议解决方案。
Insert
方法服用 signle string
不是 array
Lines.Insert(1, msg[0]);
和InsertRange
的第一个参数是要插入的索引。您是在4th
索引上插入数组,而List Lines
没有4th index.
在0 index
上插入数组。
Lines.InsertRange(0, msg);
首先,您必须修复代码中的语法错误,也就是说,您必须声明类似的字符串列表:List<string> Lines=new List<string>();
在您的情况下,您错过了()
(希望它不是错字)。然后,对于插入和insertrange,给定的索引应有效。这意味着指定的索引将在集合中可用。
考虑第一个片段,InsertRange
该集合在此阶段是空的,您正在尝试将其插入索引4
,该索引在此阶段无效,并导致参数outofrangeException。因此,您可以尝试
Lines.InsertRange(0, msg);
也尝试使用addrange代替inserrange,这在这种情况下也很有帮助:
Lines.AddRange(msg);
现在让我考虑第二个片段。使用.Insert
方法,允许您将项目插入集合中的有效索引。但是,在您的情况下,您正在尝试将一系列字符串插入列表中的索引,而该索引不允许您提供一个字符串,而不是为数组提供一个字符串。请记住,这里的一件事也是应该有效的重要因素。如果您不希望在特定位置处于特定位置的新元素,也可以尝试.add()。它将被添加到最后一个位置。