考虑以下示例:
IEnumerable<Int32> groupsToAdd = new List<Int32>();
List<Int32> groups1 = new List<Int32>() { 1,2,3 };
List<Int32> groups2 = new List<Int32>() { 3,4,5 };
groupsToAdd = groups1.Where(g => false == groups2.Contains(g));
groups2.AddRange(groupsToAdd);
groupsToAdd.Dump();
当groupsToAdd.Dump()
被调用时,列表现在是空的。我查看了 AddRange 参考,它没有提到元素已从列表中删除,但是当我测试此代码(在 linqpad 中)时,它以空结尾。为什么是这样?
编辑:为了澄清,我的意思是元素被删除,groupsToAdd
因为在groups2.AddRange(groupsToAdd)
groupsToAdd 之前填充了两个元素