Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/262.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 列表通过将列表作为参数传递来删除范围_C#_Linq_C# 4.0_Extension Methods - Fatal编程技术网

C# 列表通过将列表作为参数传递来删除范围

C# 列表通过将列表作为参数传递来删除范围,c#,linq,c#-4.0,extension-methods,C#,Linq,C# 4.0,Extension Methods,我有一个这样的缺失项列表,我正试图对我的DB表执行批量操作,方法是从现有列表中取出一小块项(每次2500项): 缺少的项目是当前包,而铸造的项目是列表。现在,我应该创建一个扩展方法,它将接受我取出的列表,并快速删除插入数据库的2500项。。。但我不太确定怎么做 有人能帮我吗 另外,有问题的部分是: castedItems.RemoveRange(subList); 它表示removerange只接受两个整数作为参数(from和to):/ 尝试此操作,偏移限制更新可能需要更

我有一个这样的缺失项列表,我正试图对我的DB表执行批量操作,方法是从现有列表中取出一小块项(每次2500项):

缺少的项目是当前包,而铸造的项目是列表。现在,我应该创建一个扩展方法,它将接受我取出的列表,并快速删除插入数据库的2500项。。。但我不太确定怎么做

有人能帮我吗

另外,有问题的部分是:

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);