将前10个列表项移动到另一个项列表

See*_*Lee 3 c# linq

我有List<Item> OldItems = new List<Item>,我想移动的前10项的OldItemsNewItems这是List<Item> NewItems= new List<Item>

有类似的东西吗?

NewItems.AddRange(OldItems.<First10Items>);
OldItems.Delete(<First10Items>);
Run Code Online (Sandbox Code Playgroud)

Kam*_*ski 10

试试这个:

NewItems.AddRange(OldItems.Take(10));
OldItems = OldItems.Skip(10).ToList();
Run Code Online (Sandbox Code Playgroud)

备用:

NewItems.AddRange(OldItems.Take(10));
OldItems.RemoveRange(0,10);
Run Code Online (Sandbox Code Playgroud)

采取将采取x第一项从列表看这里.跳过跳过会x从你的列表中的元素看这里.如果您将使用列表引用,则RemoveRange是另一种选择.

正如Matthew所说,第二个选项不会创建新列表并在原地删除,所以它是首选.

  • 我认为这里的问题可能是你没有从'OldItems`中删除任何项目 - 相反,你创建了一个新的列表,其中删除了项目并将`OldItems`分配给新列表.我认为OP可能想要一个就地删除(虽然他没有明确要求).但是如果其他任何东西也通过不同的引用引用了OldItems,它仍然会看到旧的未修改列表. (2认同)