C# way to add value in a List<T> at index
Solution 1
List<T>.Insert
, perhaps?
But I'd suggest you probably just want to fetch/write - not insert:
public Multime<T> this[int index]
{
get { return Multisets[index]; }
set { Multisets[index] = value; }
}
Note that as of C# 3, there are simpler ways of writing those properties, btw:
public List<T> Multimea { get; set; }
public List<Multime<T>> Multisets { get; set; }
It's also not generally a good idea to actually expose composed collections directly - it means you have no control over what happens in those collections.
Solution 2
The .Insert()
method on List<T>
is exactly for this purpose:
someList.Insert(2, someValue);
This would modify the someList
collection to insert someValue
at index 2
, pushing other values up one index.
More information here.
Solution 3
Can you use List.Insert?
Solution 4
Try using List.Insert
This should solve the problem you are having.
Comments
-
TyGerX over 3 years
Is there any way you can add a value at a specific index? I try to do indexator and I have Lists. Is there any trick for making this this in this context :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