如何将 inserting/replacement 元素优化到 List<string>

How do I can optimize inserting/replacement element in to the List<string>

我有一些代码:

var result = new List<string>;
...
for (var i = 0; i < level; ++i)
  if (result.ElementAtOrDefault(i) == null)
     result.Insert(i, " " + positions[i]);
  else
     result[i] += " " + positions[i];
if (result.ElementAtOrDefault(level) == null)
   result.Insert(level, " " + currentPosition);
else
   result[level] += " " + currentPosition;

我可以在不从 i 位置检查 null 元素的情况下执行此操作吗?我需要在 i 位置添加一部分字符串。但是如果没有创建元素,我有 "ArgumentOutOfRangeException"。还有方法 "insert" 不替换元素而是将其推回。


我试图从 "ArgumentOutOfRangeException" 获取数据(哪个索引调用了这个异常)但我失败了。

您可以减少使用 ElementAtOrDefault 添加一些这样的条件

int i;
for (i = 0; i < level && i < result.Count; ++i){
    //change existing items
    result[i] += " " + positions[i];
}

for (int j = 0, countAdd = level - result.Count; j < countAdd; ++j)
    //add new items
    result.Add(" " + positions[i+j]);

//add current
if (level >= result.Count)
    result.Add(" " + currentPosition);
else
    result[level] += " " + currentPosition;