的问题不是非常清楚,但如果你想从列表中随机索引中删除指定数量的元素,这里是一个方法,将做到这一点。 (这是一个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
是否有一个原因,你为什么需要他们都在同一时间删除? –