的問題不是非常清楚,但如果你想從列表中隨機索引中刪除指定數量的元素,這裏是一個方法,將做到這一點。 (這是一個String對象列表的例子,但你可以改變它來使用任何對象)。
private static List<String> strList = new List<String>();
static void Main(string[] args)
{
strList.AddRange("A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z".Split(','));
removeRandomItemsFromList(strList, 8);
Console.WriteLine(String.Join(",",strList.ToArray()));
Console.ReadLine();
}
private static void removeRandomItemsFromList(List<String> list, int numToRemove){
Random randGenerator = new Random();
if(numToRemove >= list.Count()){
Console.WriteLine("Num to remove is as big or larger than list size, clearing list.");
list.Clear();
return;
}
for (int i = 0; i < numToRemove; i++)
{
int randIndex = randGenerator.Next(list.Count - 1); //get random index within bounds of list
list.RemoveAt(randIndex);
}
}
當我跑它我得到的輸出: B,C,F,H,I,J,K,M,N,O,P,Q,R,U,V,X,Y ,Z
但當然它通常會有所不同,因爲它是刪除隨機項目。
只要他們被刪除,爲什麼它關係如何? – John
爲什麼這不是你想要的?我的猜測是,它首先刪除最低的索引,改變索引排序,並將其搞砸。你有沒有嘗試創建第二個項目列表來刪除和做一個除外? – Dassina
是否有一個原因,你爲什麼需要他們都在同一時間刪除? –