c# - 将 IList 项添加到特定索引号

标签 c# ilist

我们客户的数据库返回数组中的一组价格,但它们有时不包括所有价格,即它们的数组中缺少元素。我们将找到的内容作为 IList 返回,这在我们从数据库中检索内容时非常有用。但是,我们很难将元素设置在数组中的正确位置。

是否可以创建一个 IList,然后在 IList 的特定位置添加一个元素?

var myList = new List<Model>();
var myModel = new Model();
myList[3] = myModel;  // Something like what we would want to do

最佳答案

使用 IList<T>.Insert(int index,T item)

IList<string> mylist = new List<string>(15); 
mylist.Insert(0, "hello");
mylist.Insert(1, "world");
mylist.Insert(15, "batman"); // This will throw an exception.

来自MSDN

如果索引等于 IList 中的项目数,则将项目追加到列表中。

在连续元素的集合中,例如列表,插入点后面的元素向下移动以容纳新元素。如果集合被索引,被移动的元素的索引也会被更新。此行为不适用于元素在概念上被分组到桶中的集合,例如哈希表。

关于c# - 将 IList 项添加到特定索引号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2947260/

相关文章:

c# - 将 IList 转换为集合

c# - 使用 MEF 忽略构造函数异常,而 Visual Studio 不会在异常处中断

c# - 如何将 DataGridViewLinkColumn 属性添加到 DataGridView 中动态生成的列?

c# - 我应该如何从 ASP.NET Core View 访问我的 ApplicationUser 属性?

c# - 异步/等待、ThreadPool 和 SetApartmentState

c# - 此场景的 LINQ 查询

c# - 可以在泛型方法中使用 IList 但不能使用 List

c# - 在 ItemsControl DataTemplate 中设置 Canvas 属性

c# - C# 泛型列表中的数组协方差

c# - 当我不知道 (T) 的类型时如何反序列化通用列表 <T>?