Scott,

If your ArrayList (userList) only contains that values you need to add and
they're in the order in which you want to add them (ie. firstname,
lastname) to the table row it's pretty easy.  You'll have to modify your
approach a little.  Try...

for(int i=0; i<userList.GetUpperBound(0);i++)
   tblUser.Row.Add(userList[i].values);

That's it!

I'm presuming that you've already added your columns here.  I hope this
works for you.

Rick

On Thu, 8 Jan 2004 11:19:38 -0500, Scott A. Lawrence <[EMAIL PROTECTED]>
wrote:

>I did try a loop similar to what you described (at the suggestion of
another
>poster).  Everything took longer yesterday since I was running it over a
DSL
>connection (VPN into work), but things took longer with just the property
>references than they did with property references and row operations.
>
>I tried it again when I came into work this morning, and the loop you
>described took about 15 seconds to run.  When I switched it back to
working
>code that did row operations too, it only took about 12 seconds.
>
>On Wed, 7 Jan 2004 11:57:02 -0500, J. Merrill <[EMAIL PROTECTED]> wrote:
>
>>As someone else pointed out, and I don't remember seeing you acknowledge
>the point, you haven't AFAICT determined whether the code you've got is
slow
>because it's creating and adding many DataRow objects to your ArrayList,
or
>if it's slow because of the loop through the userList objects and
>referencing the various user properties.  If you modify the code block
that
>you've determined is slow -- the one defined by the loop
>>  foreach (UserDirectoryObject user in userList)
>>-- so that you don't actually do anything with DataRows or the ArrayList,
>but just reference the properties of the user object, and see how long
that
>takes, you'll know whether the time is taken while by accessing the
userList
>data or if it's in your code.  Perhaps --
>>
>>  {
>>    maxl = Math.Max(maxl, length(user.lastName);
>>    maxl = Math.Max(maxl, length(user.firstName);
>>    /* etc */
>>  }
>>
>>having added a line
>>    int maxl = 0;
>>before the loop block, and displaying it after.  (The reason I suggest
>creating and displaying the maxl value is so that the compiler doesn't
>optimize away all the access to user objects when it sees that none of the
>values are being used.)
>>
>>If it's accessing the userList info that takes the time, it's someone
>else's code that needs to run faster, not yours.  Good luck.
>>
>>At 02:08 PM 1/6/2004, Scott A. Lawrence wrote
>>>I'm writing a user profile tool that manipulates information in an LDAP
>>>server.  I'm using an abstraction layer that talks directly to the
server
>>>(written by another developer).  The function of the abstraction layer
that
>>>returns a list of all the users in LDAP returns an ArrayList.  For
easier
>>>filtering and sorting of this data, I build a DataTable in code,
returning
>>>its default view so it can be bound to a DataGrid.
>>>
>>>The app currently takes between 15-20 seconds to load approximately 800
>>>users from the LDAP source into memory, cache the user information, and
>>>display the page (DataGrid displays 20 users per page).  The vast
majority
>>>of that time (13-18 seconds) is consumed by the foreach loop that puts
each
>>>ArrayList element into the
>>>
>>>The code in question looks like the following:
>>>
>>>ArrayList userList = theDirectory.getUsers();
>>>
>>>if (userList != null)
>>>{
>>>  foreach (UserDirectoryObject user in userList)
>>>  {
>>>    DataRow drUser = tblUsers.NewRow();
>>>    drUser["lastName"] = user.lastName;
>>>    drUser["firstName"] = user.firstName;
>>>    /* etc */
>>>    tblUsers.Rows.Add(drUser);
>>>  }
>>>}
>>>
>>>tblUsers.DefaultView.Sort = "lastName";
>>>return tblUsers.DefaultView
>>>
>>>
>>>Any suggestions about how to increase the speed of this would be greatly
>>>appreciated.
>>>
>>>Thanks!
>
>===================================
>This list is hosted by DevelopMentorŪ  http://www.develop.com
>Some .NET courses you may be interested in:
>
>NEW! Guerrilla ASP.NET, 26 Jan 2004, in Los Angeles
>http://www.develop.com/courses/gaspdotnetls
>
>View archives and manage your subscription(s) at
http://discuss.develop.com

===================================
This list is hosted by DevelopMentorŪ  http://www.develop.com
Some .NET courses you may be interested in:

NEW! Guerrilla ASP.NET, 26 Jan 2004, in Los Angeles
http://www.develop.com/courses/gaspdotnetls

View archives and manage your subscription(s) at http://discuss.develop.com

Reply via email to