这似乎是一件非常基本的事情,但我无法找到任何方法来做到这一点。我已经检查过Intellisense并且没有运气搜索Google。
我有一个ItemCollection
,里面有约30个项目。我试图让前14个项目保留在原始ItemCollection
中,而后者16个(或多个)移动到新的ItemCollection
。
我该怎么做? myVar.CopyTo()
没问题,但是要复制的项目数没有参数,它只接受Array
输出。循环myVar.RemoveAt()
似乎很昂贵。有内置方法吗? Linq可以吗?
答案 0 :(得分:0)
这是我在Print
课程中最终完成的事情:
var Data = ...; // The original ItemCollection
var DataExcess = new DataGrid().Items; // It isn't possible to use new ItemCollection();
for(var i = 0; i < Data.Count; i++) {
if(i > 13) {
DataExcess.Add(Data[i]);
continue;
}
// Otherwise print the row to the page using e.Graphics.DrawString(..)
}
if(DataExcess.Count > 0) {
new Print(Some, Parameters, Here, ..., DataExcess).Print();
}
答案 1 :(得分:-1)
如果您可以将ItemCollection
转换为ArrayList
;然后你可以试试这个:
arraylist.RemoveRange( x, y );
这将从索引y
开始删除x
个元素。
最后,您可以将ArrayList
转换回ItemCollection
。
如果集合中的项目太多,这很有用。