将前 10 个列表项移动到另一个项列表
本文关键字:列表 另一个 移动 将前 | 更新日期: 2023-09-27 18:30:49
我有List<Item> OldItems = new List<Item>
,我想将前 10 项OldItems
移动到NewItems
List<Item> NewItems= new List<Item>
有类似的东西吗?
NewItems.AddRange(OldItems.<First10Items>);
OldItems.Delete(<First10Items>);
试试这个:
NewItems.AddRange(OldItems.Take(10));
OldItems = OldItems.Skip(10).ToList();
互生:
NewItems.AddRange(OldItems.Take(10));
OldItems.RemoveRange(0,10);
Take 将从您的列表中获取x
第一项,请看这里。跳过将跳过列表中的x
元素,如下所示。删除范围是另一种选项,如果您将使用列表引用。
正如 Matthew 所说,第二个选项不会创建新列表并就地删除,因此首选。
你可以做:
var NewItems = OldItems.GetRange(0, 10);
OldItems.RemoveRange(0, 10);
(这不使用 Linq)
试试这个
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);