我有List<string>
名为stringList
。我试图在列表中插入一些字符串。首先,我使用循环为我的内容生成“空位”。
for (int i = 0; i < 60; i++)
{
stringList.Add(null);
}
然后我使用stringlist.Insert(index, element)
在指定索引处的List中插入一个元素。接下来我想看看每个元素是否都被正确读取。
这是我的stringList
:
每个元素都已正确读取,但错过了三个索引。在第3个索引应该是第6个,第4个 - &gt; 7日等等。
我不知道如何解决这个问题。
这是代码片段(对于索引3,4,5),程序读取元素并将其插入列表中。
case "yweather:wind":
stringList.Insert(3, reader["speed"]);//3
break;
case "yweather:atmosphere":
stringList.Insert(4, reader["pressure"]);//4
stringList.Insert(5, reader["rising"]);//5
stringList.Insert(6, reader["humidity"]);//6
break;
抱歉我的英文。
答案 0 :(得分:1)
List.Insert
会在给定索引的列表中添加一个元素,并移动以下所有元素。
您可能只想设置一个给定的索引,因为您正在插入null
个元素。如果是这样,请改用此语法:
stringList[3] = reader["speed"]; // etc
但是你知道你想要的容量,最好只使用一个简单的数组,所以你不必用空项初始化一个列表:
var stringList = new string[60];
然后使用相同的语法(stringList[i] = whatever;
)来填充它。
如果你必须使用List<T>
(例如,如果你以后添加了其他元素),那么至少要使用constructor来预先分配一些空间:
var stringList = new List<string>(60);
答案 1 :(得分:0)
因为方法Insert()确实&#39;插入&#39;元件。让我解释..
假设下面是一个列表;
1 2 3
如果在2中插入元素4,则结果如下;
1 2 4 3
这是你的错误。