我有一个 List<Item> OldItems = new List<Item>
,我想将 OldItems
的前10个项目移动到 NewItems
中,而 NewItems
是 List<Item> NewItems= new List<Item>
是否有类似的方法?
NewItems.AddRange(OldItems.<First10Items>);
OldItems.Delete(<First10Items>);
您可以这样做:
var NewItems = OldItems.GetRange(0, 10);
OldItems.RemoveRange(0, 10);
(这不使用Linq)
linq
标签,所以最好使用linq回答 :) - Kamil Budziewski试试这个
List<Item> oldItems = new List<Item>();
List<Item> newItems = new List<Item>();
newItems.AddRange(oldItems.Take(10));//add first 10 items to new list
oldItems.RemoveRange(0, 10);//remove first 10 items from old list
GetRange(int index, int count); RemoveRange(int index, int count);
List<string> checkForNull = new List<string>();
List<string> newList = new List<string>();
for (int i = 0; i < 10; i++)
{
checkForNull.Add(Convert.ToString(i));
}
for (int i = 10; i < 20; i++)
{
newList.Add(Convert.ToString(i));
}
checkForNull.AddRange(newList.Take(5));
newList.RemoveRange(0, 5);
OldItems.RemoveRange(0, 10)
。 - dabideOldItems
中删除任何项 - 相反,您创建了一个新列表,并将OldItems
分配给新列表中已删除的项。我认为OP可能希望进行原地删除(尽管他没有明确要求)。但是,如果其他任何东西也通过不同的引用引用到OldItems,则仍将看到旧的未修改的列表。 - Matthew WatsonRemoveRange
写了第二个代码片段,这将解决这个问题。 - Kamil Budziewski