In C# Ich versuche, ein Element aus einer Liste an einem zufälligen Index zu erhalten. Wenn es abgerufen wurde, möchte ich, dass es entfernt wird, sodass es nicht mehr ausgewählt werden kann. Es scheint, als ob ich eine Menge Operationen brauche, um das zu tun, gibt es nicht eine Funktion, wo ich einfach einen Gegenstand aus der Liste extrahieren kann? Die RemoveAt (Index) -Funktion ist ungültig. Ich möchte eins mit einem Rückgabewert.Entfernen Sie das Element aus der Liste und rufen Sie das Element gleichzeitig
Was ich tue:
List<int> numLst = new List<int>();
numLst.Add(1);
numLst.Add(2);
do
{
int index = rand.Next(numLst.Count);
int extracted = numLst[index];
// do something with extracted value...
numLst.removeAt(index);
}
while(numLst.Count > 0);
Was möchte ich tun, um:
List<int> numLst = new List<int>();
numLst.Add(1);
numLst.Add(2);
do
{
int extracted = numLst.removeAndGetItem(rand.Next(numLst.Count));
// do something with this value...
}
while(numLst.Count > 0);
Gibt es eine solche "removeAndGetItem" -Funktion gibt es? Diese
Du müss schreiben Ihr eigenes - soweit ich weiß, hat nur ein Stapel oder eine Warteschlange diese Art von Funktionalität eingebaut. Müsste das Thread-sicher sein? –
Warum nicht bekommen, was Sie wollen, um eine neue Variable/Liste? – Kaf