有什么方法可以在特定索引处添加值吗?我尝试做索引器,我有列表。在这种情况下,有没有任何技巧可以做到这一点:D
public class Multime<T>
{
private List<Multime<T>> multiSets;
private List<T> multimea;
***public Multime<T> this[int index]
{
get { return this.Multisets.ElementAt(index); }
set { this.Multisets.CopyTo(value,index); }
}***
public List<Multime<T>> Multisets
{
get { return this.multiSets; }
set { this.multiSets = value; }
}//accesori Multimea de multimi
public List<T> Multimea
{
get { return this.multimea; }
set { this.multimea = value; }
}//Accesori Multime
答案 0 :(得分:29)
.Insert()
上的List<T>
方法正是出于此目的:
someList.Insert(2, someValue);
这会修改someList
集合,以便在索引someValue
处插入2
,将其他值推上一个索引。
更多信息here。
答案 1 :(得分:25)
List<T>.Insert
,也许?
但我建议你可能只想获取/写入 - 而不是插入:
public Multime<T> this[int index]
{
get { return Multisets[index]; }
set { Multisets[index] = value; }
}
请注意,从C#3开始,有更简单的方法来编写这些属性,btw:
public List<T> Multimea { get; set; }
public List<Multime<T>> Multisets { get; set; }
直接公开组合集合通常也不是一个好主意 - 这意味着你无法控制这些集合中发生的事情。
答案 2 :(得分:1)
尝试使用List.Insert
这可以解决您遇到的问题。
答案 3 :(得分:0)
您可以使用List.Insert吗?
答案 4 :(得分:-1)
您可能正在寻找更像字典或地图的东西。这些类型的集合允许您使用键值对分配对象,因此您始终可以在某个位置分配对象并从同一位置检索对象。您可能认为您需要该列表,因为您不知道要存储多少条记录,但是如果您对最大记录数有所了解,它将有助于您决定是否可以使用“字典”之类的东西。我认为该限制非常高,但是您可以查看Dictionary类以查看限制。