Groups | Blog | Home
all groups > visual c > september 2007 >

visual c : How do I create a Generic.List?



Peter Oliphant
9/28/2007 12:38:56 PM
How about creating a list of void pointers? Not sure how to do it with
lists, but as an array:

#typedef array<void^> VoidArray ;

VoidArray^ varray = gcnew VoidArray( count ) ;

for ( init 1 = 0 ; i < count ; i++ )
{
varray[i] = 'pointer to object[i]' ;// meta-code
}

Been a while since I worked with Lists, but there is likely a way to do this
with those instead of arrays...

[==Peter==]

[quoted text, click to view]

Ben Voigt [C++ MVP]
9/28/2007 2:58:09 PM

[quoted text, click to view]

Since you're using generics, I'm assuming you're using .NET 2.0. The C++
compiler was totally changed between .NET 1.x and 2.0 and the syntax you
show is no longer used.

Try

Geocode::AddressValue^ addr1 = gcnew Geocode::AddressValue ("STREET",
pAddress);
Geocode::AddressValue^ addr2 = gcnew Geocode::AddressValue ("ZONE",
pZipcode);
System::Generic::Collections::List<Geocode::AddressValue^>^ addrValColl =
gcnew System::Generic::Collections::List<Geocode::AddressValue^>();
addrValColl->Add(addrVal1);
addrValColl->Add(addrVal2);
Ben Voigt [C++ MVP]
9/28/2007 3:06:52 PM

[quoted text, click to view]

I think I got it backwards, try System::Collections::Generic::List ...

[quoted text, click to view]
Arcadefreaque
9/28/2007 6:32:47 PM
I'm realizing how little I know about C++ today as I try to convert
some functionality from VB.Net to C++.

I have a procedure that I need to pass a List of objects to, and
cannot see how to do this using C++. It's easy in VB.Net, so I'm
hoping it is just my silly misunderstanding of c++ that is preventing
me from doing this in c++.

In VB.Net, to create a couple of objects and add them into a generic
list, this is the code that is used:
' Assign parameter list for GEOCODING
Dim addrVal1 As New ESRI.ArcGIS.ADF.Web.Geocode.AddressValue("STREET",
pAddress)
Dim addrVal2 As New ESRI.ArcGIS.ADF.Web.Geocode.AddressValue("ZONE",
pZipcode)
Dim addrValColl As New System.Collections.Generic.List(Of
ESRI.ArcGIS.ADF.Web.Geocode.AddressValue)
addrValColl.Add(addrVal1)
addrValColl.Add(addrVal2)

In C++, I realize that creating the objects for the list would be
something like this:
Geocode::AddressValue __gc * addrVal1 = new
Geocode::AddressValue(S"STREET", pAddress);
Geocode::AddressValue __gc * addrVal1 = new
Geocode::AddressValue(S"ZONE", pZipcode);

But, how do I go about defining the AddrValColl apppropriately so that
I can add my two objects to it and then call my procedure?

Thanks in advance for any assistance you might be able to provide.
AddThis Social Bookmark Button