3

Delphi Prism では、1 つのステートメントで ListBox から ArrayList に objectcollection を割り当てる必要があります。これまでのところ、解決策は見つかりませんでした。

Delphiでは、これが私がやった方法です。

theUser.Groups.Assign(ListBox1.Items);

Groups は、Delphi では TList であり、Delphi Prism では ArrayList です。Delphi Prismで同じことをしようとすると、次のエラーが発生します。

「Groups.TGroupList」には、式「theUser.groups.Assign」に「Assign」の定義が含まれていません。

ArrayList に objectcollection を受け入れるメソッドがない場合は、ListBox アイテム内の各オブジェクトをループして、それを ArrayList に追加する必要があります。

どのようにしますか?

前もって感謝します。

4

3 に答える 3

5

未テスト:

theUser.Groups.AddRange(ListBox1.Items)

ArrayList.AddRangeICollection実装するインターフェースを受け入れますListBox.ObjectCollection

以下も参照してください。

http://msdn.microsoft.com/en-us/library/system.windows.forms.listbox.objectcollection.aspx

http://msdn.microsoft.com/en-us/library/system.collections.arraylist.addrange(VS.71).aspx

于 2011-09-12T14:56:24.497 に答える
2

AddRange()の方法を使用する必要がありArrayListます。

Delphi コードに相当するものは次のとおりです。

theUser.Groups.Clear();
theUser.Groups.AddRange(ListBox1.Items);
于 2011-09-12T14:57:57.990 に答える
0

既存のリストに追加する必要はなく、リストに追加する必要がある場合は、LINQ を使用することもできます。

lbMyListBox.Items.Cast<String>().ToList();

Cast のように無効なアイテムでキャスト エラーを呼び出すのではなく、特定のタイプのアイテムのみを選択する場合は、Cast() の呼び出しを OfType() に置き換えることができます。

于 2011-09-12T16:33:28.173 に答える