0

これは非常に基本的なことのように思えますが、これを行う方法が見つかりません。Intellisense をチェックし、Google を検索しましたが、うまくいきませんでした。

私はそのItemCollection中に〜30個のアイテムを持っています。最初の 14 個のアイテムを元のままにしItemCollection、後の 16 個 (または多くのアイテム) を新しい に移動しようとしていItemCollectionます。

これどうやってするの?myVar.CopyTo()大丈夫ですが、コピーするアイテムの数のパラメーターはなく、Array出力のみを受け入れます。ループオーバー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 に答える