0

这似乎是一件非常基本的事情,但我找不到任何方法来做到这一点。我检查了 Intellisense 并搜索了谷歌,但没有运气。

我有一个ItemCollection大约 30 件物品。我试图让前 14 个项目保留在原始项目中,ItemCollection而后 16 个(或许多项目)移动到新的ItemCollection.

我怎样才能做到这一点?myVar.CopyTo()可以,但是没有要复制的项目数的参数,它只接受一个Arrayfor 输出。循环myVar.RemoveAt()似乎很昂贵。有内置方法吗?Linq可以吗?

4

2 回答 2

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();
}
于 2015-01-28T12:54:45.573 回答
-1

如果您可以将 转换ItemCollectionArrayList; 那么你可以试试这个:

arraylist.RemoveRange( x, y );

这将删除y从 index 开始的元素x

最后,您可以将ArrayList背面转换为ItemCollection.

如果集合中有太多项目,这很有用。

于 2015-01-28T12:21:45.957 回答