C# 列表通过将列表作为参数传递来删除范围
我有一个这样的缺失项列表,我正试图对我的DB表执行批量操作,方法是从现有列表中取出一小块项(每次2500项): 缺少的项目是当前包,而铸造的项目是列表。现在,我应该创建一个扩展方法,它将接受我取出的列表,并快速删除插入数据库的2500项。。。但我不太确定怎么做 有人能帮我吗 另外,有问题的部分是:C# 列表通过将列表作为参数传递来删除范围,c#,linq,c#-4.0,extension-methods,C#,Linq,C# 4.0,Extension Methods,我有一个这样的缺失项列表,我正试图对我的DB表执行批量操作,方法是从现有列表中取出一小块项(每次2500项): 缺少的项目是当前包,而铸造的项目是列表。现在,我应该创建一个扩展方法,它将接受我取出的列表,并快速删除插入数据库的2500项。。。但我不太确定怎么做 有人能帮我吗 另外,有问题的部分是: castedItems.RemoveRange(subList); 它表示removerange只接受两个整数作为参数(from和to):/ 尝试此操作,偏移限制更新可能需要更
castedItems.RemoveRange(subList);
它表示removerange只接受两个整数作为参数(from和to):/
尝试此操作,偏移限制更新可能需要更新。没有检查工作状态我相信您可以简单地执行以下操作:
castedItems.RemoveRange(0,2500);
假设你有一个好的同事,你可以做的除了
castedItems = castedItems.Except(subList);
看
这是一般情况。在您的情况下,您可以使用skip:
var castedItems = castedItems.Skip(2500);
Skip是take的“反向”
在这种情况下,Skip也比RemoveRange快得多,或者除两个原因外,不需要分配,它可能是惰性的。您是否尝试过通过偏移量和限制?第一次像0和2500?像这样的
castedItems.Except(subList.ToList()代码>@milindiantwar你的意思是:castedItems=castedItems.Except(subList.ToList()@Akbaradhusha你能给我举个例子吗?如果你想从收藏的前端删除项目,你真的应该使用队列,而不是列表。这些操作是您可以对列表执行的最低效的操作之一。队列是专门设计用来高效地完成这类事情的。这是假设您需要将项目放入一个新的集合中,而不仅仅是迭代missingItems
,并且从一开始就从不将项目放入具体化的问题中(如果可行,这将是理想的)。
castedItems = castedItems.Except(subList);
var castedItems = castedItems.Skip(2500);