ArrayList数组去掉包含的数组
ArrayList数组去除包含的数组
我原程序是这样的:
------解决方案--------------------
你用的foreach,当然不能再循环的时候删除你要循环枚举的对象了
改成用for,这样你就可以在循环的时候删除你遍历的数组了
------解决方案--------------------
list1 = list1.Where(x => list2.All(y => !x.SequenceEquals(y))).ToList();
上面例子简单的说明了我的意图,al2是al1中满足某个条件后生成的新的集,想从al1删除al2
ArrayList al1 = new ArrayList();
ArrayList al2 = new ArrayList();
for (int i = 0; i < 7; i++)
{
al1.Add(new string[] { "A" + i, "B" + i, "C" + i });
}
for (int i = 3; i < 6; i++)
{
al2.Add(new string[] { "A" + i, "B" + i, "C" + i });
}
foreach (string[] lll in al2)
{
al1.Remove(lll);
}
我原程序是这样的:
因为在循环时不能直接从al1中删除,所以只能添加一个al2,然后在循环结束后再从al1中删除,不知道有什么办法,弄了好久没弄好。
foreach(string[] list in al1)
{
if(如果满足条件) { al2.Add(list);}
}
------解决方案--------------------
你用的foreach,当然不能再循环的时候删除你要循环枚举的对象了
改成用for,这样你就可以在循环的时候删除你遍历的数组了
------解决方案--------------------
list1 = list1.Where(x => list2.All(y => !x.SequenceEquals(y))).ToList();