Peter,
First I would question having 42000 objects in a collection.
| Is there anything I can do to speed this up in .NET 1.1 ?
What type of "collection" are you using? Array, ArrayList, VB.Collection, or
something else?
| For Each TranslateImport As TranslateImport In Me._transColl
| with TranslateImport
| If .Key = key Then .TranslatedValue = Val()
| end with
| Next TranslateImport
Is the .key property unique in the collection? Have you considered a
HashTable (.NET 1.x) or Dictionary(Of T) (.NET 2.0) instead. Where .Key is
the key to the HashTable/Dictionary.
Alternatively: Can you sort the collection by .Key, then use a BinarySearch?
..NET 2.0 has made improvements in the performance of large DataSets, does
using a DataSet instead of a class & a collection improve performance?
--
Hope this helps
Jay B. Harlow [MVP - Outlook]
..NET Application Architect, Enthusiast, & Evangelist
T.S. Bradley -
http://www.tsbradley.net
"Peter" <pc*****@nospam.nospamwrote in message
news:OO**************@TK2MSFTNGP02.phx.gbl...
|
| <to**************@uniroma1.itwrote in message
| news:11*********************@m79g2000cwm.googlegro ups.com...
| >I like to avoid indices every time it is possible (2005), code is
| clearer imho:
| >
| For Each TranslateImport As TranslateImport In Me._transColl
| with TranslateImport
| If .Key = key Then .TranslatedValue = Val()
| end with
| Next TranslateImport
| >
| -tom
| >
| Michel Posseth [MCP] ha scritto:
| >
| >You might try Directcast instead of ctype
| >>
| >>
| >regards
| >>
| >>
| >Michel
| >>
| >>
| >"Peter" <pc*****@nospam.nospamschreef in bericht
| >news:%2***************@TK2MSFTNGP05.phx.gbl...
| >I have the following code:
| _transColl is a collection of classes and it contains about 42000
| objects
| My question is there any way I can make this code run faster?
| >
| I have found out that line 2 is realy expensive (time wise) :
| >
| '------------------------------------------------------------------
| >
| 1 For n As Int32 = 1 To Me._transColl.Count - 1
| 2 ti = CType(Me._transColl(n), TranslateImport)
| 3 If ti.Key.Equals(key) Then
| 4 ti.TranslatedValue = val
| 5 End If
| 6 Next
| >
| '
| ' the following code is useless by it's very fast, proving that the
| line 2
| is the culprint
| ' I've moved the line 2 out out the loop
| '
| ti = CType(Me._transColl(0), TranslateImport)
| >
| For n As Int32 = 1 To Me._transColl.Count - 1
| If ti.Key.Equals(key) Then
| ti.TranslatedValue = val
| End If
| Next
| >
| >
| Thanks for any input?
| >
| >
| >
|
| I have tried the fillowing in .NET 2.0 and it works realy fast, but in
..NET
| 1.1 is slow the same as using for next loop.
| Is there anything I can do to speed this up in .NET 1.1 ?
|
|
| For Each TranslateImport As TranslateImport In Me._transColl
| with TranslateImport
| If .Key = key Then .TranslatedValue = Val()
| end with
| Next TranslateImport
|
|