Ok, I give up. I can't seem to construct a decent (productive) way of
sorting my arraylist.
I have a structure of two elements:
Structure TabStructure
Dim TabName As String
Dim FullFilePath As String
End Structure
Then for example I:
Dim tab as New TabStructure
some code
Then I add "tab" to an arraylist.
At some point I loop through my arraylist, grab data and create tabs from
it. Of course the resulting list of tabs are out of sequence.
Can someone help me to sort my array list alphabetically by
TabStructure.TabName?
I would greatly appreciate it. 12 9698
Justin,
One option is to have your structure implement the IComparable interface:
Structure TabStructure
Implements IComparable(Of TabStructure)
Dim TabName As String
Dim FullFilePath As String
Function CompareTo(ByVal other As TabStructure) As Integer
Implements IComparable(Of TabStructure).CompareTo
Return Me.TabName.CompareTo(other.TabName)
End Function
End Structure
Now ArrayList.Sort should sort the "tabs" by TabName.
By the way, I would use a class instead of a structure.
Kerry Moorman
"Justin" wrote:
Ok, I give up. I can't seem to construct a decent (productive) way of
sorting my arraylist.
I have a structure of two elements:
Structure TabStructure
Dim TabName As String
Dim FullFilePath As String
End Structure
Then for example I:
Dim tab as New TabStructure
some code
Then I add "tab" to an arraylist.
At some point I loop through my arraylist, grab data and create tabs from
it. Of course the resulting list of tabs are out of sequence.
Can someone help me to sort my array list alphabetically by
TabStructure.TabName?
I would greatly appreciate it.
Hi Justin,
First, why are you using ArrayList ? You should use the generic List, eg.
Dim myList as New List(Of TabStructure)
Then, assuming you are using VB 2008, you can pass in a lambda function to
the sort method:
myList.Sort(Function(x, y) x.TabName.CompareTo(y.TabName))
"Justin" <No**@None.comwrote in message
news:OE****************@TK2MSFTNGP03.phx.gbl...
Ok, I give up. I can't seem to construct a decent (productive) way of
sorting my arraylist.
I have a structure of two elements:
Structure TabStructure
Dim TabName As String
Dim FullFilePath As String
End Structure
Then for example I:
Dim tab as New TabStructure
some code
Then I add "tab" to an arraylist.
At some point I loop through my arraylist, grab data and create tabs from
it. Of course the resulting list of tabs are out of sequence.
Can someone help me to sort my array list alphabetically by
TabStructure.TabName?
I would greatly appreciate it.
First, until just now I never heard of "lists". However you mention VS2008
specifically and while I am using VS2008 I'm wanting to stay with in the
confines of framework 2. Does your suggestion do that? If so then I'll
read up on it.
Googling "VB.NET list" came up with nothing but arraylists and listboxes.
I already know arraylists and I already know how to check for dups before
adding so it was pretty simple to bang out the code. This arraylist is used
all over my app.
"Bill McCarthy" <Bi**@localhost.comwrote in message
news:12**********************************@microsof t.com...
Hi Justin,
First, why are you using ArrayList ? You should use the generic List, eg.
Dim myList as New List(Of TabStructure)
Then, assuming you are using VB 2008, you can pass in a lambda function to
the sort method:
myList.Sort(Function(x, y) x.TabName.CompareTo(y.TabName))
"Justin" <No**@None.comwrote in message
news:OE****************@TK2MSFTNGP03.phx.gbl...
>Ok, I give up. I can't seem to construct a decent (productive) way of sorting my arraylist.
I have a structure of two elements:
Structure TabStructure Dim TabName As String Dim FullFilePath As String End Structure
Then for example I:
Dim tab as New TabStructure
some code
Then I add "tab" to an arraylist.
At some point I loop through my arraylist, grab data and create tabs from it. Of course the resulting list of tabs are out of sequence.
Can someone help me to sort my array list alphabetically by TabStructure.TabName?
I would greatly appreciate it.
Eh, this is my only instance and it was just 4 lines of code. I was
wondering how to implement IComparable. Now I get it. This make much more
sense then what I was reading earlier today.
Thanks! I'll play with this tomorrow.
"Kerry Moorman" <Ke**********@discussions.microsoft.comwrote in message
news:36**********************************@microsof t.com...
Justin,
One option is to have your structure implement the IComparable interface:
Structure TabStructure
Implements IComparable(Of TabStructure)
Dim TabName As String
Dim FullFilePath As String
Function CompareTo(ByVal other As TabStructure) As Integer
Implements IComparable(Of TabStructure).CompareTo
Return Me.TabName.CompareTo(other.TabName)
End Function
End Structure
Now ArrayList.Sort should sort the "tabs" by TabName.
By the way, I would use a class instead of a structure.
Kerry Moorman
"Justin" wrote:
>Ok, I give up. I can't seem to construct a decent (productive) way of sorting my arraylist.
I have a structure of two elements:
Structure TabStructure Dim TabName As String Dim FullFilePath As String End Structure
Then for example I:
Dim tab as New TabStructure
some code
Then I add "tab" to an arraylist.
At some point I loop through my arraylist, grab data and create tabs from it. Of course the resulting list of tabs are out of sequence.
Can someone help me to sort my array list alphabetically by TabStructure.TabName?
I would greatly appreciate it.
The generic List(Of T) is in 2.0. Its advantage over ArrayList is
that the contents of the list is typed so you don't have to cast the
contents and therefore avoid runtime errors if you make a mistake
casting the contents. I also strongly urge you to use it instead of
ArrayList.
On Thu, 21 Aug 2008 20:48:26 -0700, "Justin" <No**@None.comwrote:
>First, until just now I never heard of "lists". However you mention VS2008 specifically and while I am using VS2008 I'm wanting to stay with in the confines of framework 2. Does your suggestion do that? If so then I'll read up on it.
Googling "VB.NET list" came up with nothing but arraylists and listboxes.
I already know arraylists and I already know how to check for dups before adding so it was pretty simple to bang out the code. This arraylist is used all over my app. "Bill McCarthy" <Bi**@localhost.comwrote in message news:12**********************************@microso ft.com...
>Hi Justin,
First, why are you using ArrayList ? You should use the generic List, eg.
Dim myList as New List(Of TabStructure)
Then, assuming you are using VB 2008, you can pass in a lambda function to the sort method:
myList.Sort(Function(x, y) x.TabName.CompareTo(y.TabName))
"Justin" <No**@None.comwrote in message news:OE****************@TK2MSFTNGP03.phx.gbl...
>>Ok, I give up. I can't seem to construct a decent (productive) way of sorting my arraylist.
I have a structure of two elements:
Structure TabStructure Dim TabName As String Dim FullFilePath As String End Structure
Then for example I:
Dim tab as New TabStructure
some code
Then I add "tab" to an arraylist.
At some point I loop through my arraylist, grab data and create tabs from it. Of course the resulting list of tabs are out of sequence.
Can someone help me to sort my array list alphabetically by TabStructure.TabName?
I would greatly appreciate it.
Cool, I'll check it out. Thanks.
"Jack Jackson" <jj******@cinnovations.netwrote in message
news:c0********************************@4ax.com...
The generic List(Of T) is in 2.0. Its advantage over ArrayList is
that the contents of the list is typed so you don't have to cast the
contents and therefore avoid runtime errors if you make a mistake
casting the contents. I also strongly urge you to use it instead of
ArrayList.
On Thu, 21 Aug 2008 20:48:26 -0700, "Justin" <No**@None.comwrote:
>>First, until just now I never heard of "lists". However you mention VS2008 specifically and while I am using VS2008 I'm wanting to stay with in the confines of framework 2. Does your suggestion do that? If so then I'll read up on it.
Googling "VB.NET list" came up with nothing but arraylists and listboxes.
I already know arraylists and I already know how to check for dups before adding so it was pretty simple to bang out the code. This arraylist is used all over my app. "Bill McCarthy" <Bi**@localhost.comwrote in message news:12**********************************@micros oft.com...
>>Hi Justin,
First, why are you using ArrayList ? You should use the generic List, eg.
Dim myList as New List(Of TabStructure)
Then, assuming you are using VB 2008, you can pass in a lambda function to the sort method:
myList.Sort(Function(x, y) x.TabName.CompareTo(y.TabName))
"Justin" <No**@None.comwrote in message news:OE****************@TK2MSFTNGP03.phx.gbl.. . Ok, I give up. I can't seem to construct a decent (productive) way of sorting my arraylist.
I have a structure of two elements:
Structure TabStructure Dim TabName As String Dim FullFilePath As String End Structure
Then for example I:
Dim tab as New TabStructure
some code
Then I add "tab" to an arraylist.
At some point I loop through my arraylist, grab data and create tabs from it. Of course the resulting list of tabs are out of sequence.
Can someone help me to sort my array list alphabetically by TabStructure.TabName?
I would greatly appreciate it.
Hi Justin,
List(Of T) basically replaces ArrayList as of .NET 2.0//VB 2005. It uses
generics, so the item type is strongly typed. With value types, such as your
structure, this avoids costly boxing and unboxing the arraylist has to
perform. So you get more robust code and in many cases a bit of a
performance improvement too.
As to compiling against the 2.0 framework, in VB 2008 in project options,
compile tab, select Advanced Compile Options and set the target framework to
2.0, 3.0 or 3.5. If you are using features not supported by the target
framework, VB will warn you. The example of the lambda function I gave
should compile to 2.0 without problem. The lambda function, is basically an
inline function.
As to generics, it's been a while since I wrote much about them, but perhaps
this old article may help introduce you to them: http://visualstudiomagazine.com/feat...torialsid=1731
"Justin" <No**@None.comwrote in message
news:O$**************@TK2MSFTNGP03.phx.gbl...
First, until just now I never heard of "lists". However you mention
VS2008 specifically and while I am using VS2008 I'm wanting to stay with
in the confines of framework 2. Does your suggestion do that? If so then
I'll read up on it.
Googling "VB.NET list" came up with nothing but arraylists and listboxes.
I already know arraylists and I already know how to check for dups before
adding so it was pretty simple to bang out the code. This arraylist is
used all over my app.
"Bill McCarthy" <Bi**@localhost.comwrote in message
news:12**********************************@microsof t.com...
>Hi Justin,
First, why are you using ArrayList ? You should use the generic List, eg.
Dim myList as New List(Of TabStructure)
Then, assuming you are using VB 2008, you can pass in a lambda function to the sort method:
myList.Sort(Function(x, y) x.TabName.CompareTo(y.TabName))
"Justin" <No**@None.comwrote in message news:OE****************@TK2MSFTNGP03.phx.gbl...
>>Ok, I give up. I can't seem to construct a decent (productive) way of sorting my arraylist.
I have a structure of two elements:
Structure TabStructure Dim TabName As String Dim FullFilePath As String End Structure
Then for example I:
Dim tab as New TabStructure
some code
Then I add "tab" to an arraylist.
At some point I loop through my arraylist, grab data and create tabs from it. Of course the resulting list of tabs are out of sequence.
Can someone help me to sort my array list alphabetically by TabStructure.TabName?
I would greatly appreciate it.
On 2008-08-21, Justin <No**@None.comwrote:
Ok, I give up. I can't seem to construct a decent (productive) way of
sorting my arraylist.
I have a structure of two elements:
Structure TabStructure
Dim TabName As String
Dim FullFilePath As String
End Structure
Then for example I:
Dim tab as New TabStructure
some code
Then I add "tab" to an arraylist.
At some point I loop through my arraylist, grab data and create tabs from
it. Of course the resulting list of tabs are out of sequence.
Can someone help me to sort my array list alphabetically by
TabStructure.TabName?
I would greatly appreciate it.
Others have point out to you the List(Of T) - so I won't rehash that :) But,
I'm going to talk about your structure. The fact is, there is almost never
any reason to use a structure except for interop scenarios or where you want
to preserve value symantics... TabStructure should be a class. This will
become apparent as soon as you start trying to modify individual members of
your list:
Private Structure TStruct
Public s1 As String
Public s2 As String
Public Sub New(ByVal s1 As String, ByVal s2 As String)
Me.s1 = s1
Me.s2 = s2
End Sub
End Structure
Sub Main()
Dim l As New List(Of TStruct)
l.Add(New TStruct("one", "one"))
l.Add(New TStruct("two", "one"))
l.Add(New TStruct("three", "one"))
l.Add(New TStruct("four", "one"))
For Each i As TStruct In l
i.s2 = "changing..."
Next
For Each i As TStruct In l
Console.WriteLine("s1={0}, s2={1}", i.s1, i.s2)
Next
End Sub
You might be suprised that the values of s2 changend in the first loop, don't
actually change anything. That's because TStruct is a value type, and any
time you assign or return it you get a copy and not the original. If I change
TStruct to a class:
Private Class TStruct
Public s1 As String
Public s2 As String
Public Sub New(ByVal s1 As String, ByVal s2 As String)
Me.s1 = s1
Me.s2 = s2
End Sub
End Class
Then every thing works as expected.
So, again unless your doing interop or really want value symantics, there is
not much gained by using a struct over a class.
--
Tom Shelton
Ok, after getting beat in the head with "class" by 4 people I converted it
to a class :)
I tried to convert my arraylist to a list and that was just an ugly mess.
Here's the first two errors I received:
'TabsArray' cannot expose type 'TabClass' outside the project through class
'frmMain'
Too few type arguments to 'System.Collections.Generic.List(Of T)'
But enough of that. I want to wrap my head around iComparable first. I'll
deal with that later.
I implemented iComparable and now when I try to .sort my arraylist I get:
"Failed to compare two elements in the array."
Again, thanks for the help everyone!
"Kerry Moorman" <Ke**********@discussions.microsoft.comwrote in message
news:36**********************************@microsof t.com...
Justin,
One option is to have your structure implement the IComparable interface:
Structure TabStructure
Implements IComparable(Of TabStructure)
Dim TabName As String
Dim FullFilePath As String
Function CompareTo(ByVal other As TabStructure) As Integer
Implements IComparable(Of TabStructure).CompareTo
Return Me.TabName.CompareTo(other.TabName)
End Function
End Structure
Now ArrayList.Sort should sort the "tabs" by TabName.
By the way, I would use a class instead of a structure.
Kerry Moorman
"Justin" wrote:
>Ok, I give up. I can't seem to construct a decent (productive) way of sorting my arraylist.
I have a structure of two elements:
Structure TabStructure Dim TabName As String Dim FullFilePath As String End Structure
Then for example I:
Dim tab as New TabStructure
some code
Then I add "tab" to an arraylist.
At some point I loop through my arraylist, grab data and create tabs from it. Of course the resulting list of tabs are out of sequence.
Can someone help me to sort my array list alphabetically by TabStructure.TabName?
I would greatly appreciate it.
On 2008-08-22, Justin <No**@None.comwrote:
Ok, after getting beat in the head with "class" by 4 people I converted it
to a class :)
I tried to convert my arraylist to a list and that was just an ugly mess.
Here's the first two errors I received:
'TabsArray' cannot expose type 'TabClass' outside the project through class
'frmMain'
Too few type arguments to 'System.Collections.Generic.List(Of T)'
But enough of that. I want to wrap my head around iComparable first. I'll
deal with that later.
I implemented iComparable and now when I try to .sort my arraylist I get:
"Failed to compare two elements in the array."
Again, thanks for the help everyone!
Using a list should be simply:
Dim myList As New List(Of TabClass)()
from there, it is very much like an ArrayList - only better and faster :)
--
Tom Shelton
I've come across this before. When something as simple as this just isn't
working I've learned to start a whole new project and bring everything over.
Surprisingly that didn't take too long.
The error, "Failed to compare two elements in the array.", came over however
once I converted the arraylist to a list the error went away and it's now
sorting properly. Obviously the List errors did not come over as well.
I'm growing a little tired of having to start whole new projects because of
silly unexplained issues but at the same time I'm glad to be able to move
forward.
Again, thanks to everyone!
"Tom Shelton" <to*********@comcastXXXXXXX.netwrote in message
news:3I******************************@comcast.com. ..
On 2008-08-22, Justin <No**@None.comwrote:
>Ok, after getting beat in the head with "class" by 4 people I converted it to a class :)
I tried to convert my arraylist to a list and that was just an ugly mess. Here's the first two errors I received: 'TabsArray' cannot expose type 'TabClass' outside the project through class 'frmMain' Too few type arguments to 'System.Collections.Generic.List(Of T)'
But enough of that. I want to wrap my head around iComparable first. I'll deal with that later.
I implemented iComparable and now when I try to .sort my arraylist I get:
"Failed to compare two elements in the array."
Again, thanks for the help everyone!
Using a list should be simply:
Dim myList As New List(Of TabClass)()
from there, it is very much like an ArrayList - only better and faster :)
--
Tom Shelton
Point well taken. While my data doesn't change so this wont hurt me here, I
never knew this about structures and I'll be sure to just use classes from
now on.
Thanks!
"Tom Shelton" <to*********@comcastXXXXXXX.netwrote in message
news:cM******************************@comcast.com. ..
On 2008-08-21, Justin <No**@None.comwrote:
>Ok, I give up. I can't seem to construct a decent (productive) way of sorting my arraylist.
I have a structure of two elements:
Structure TabStructure Dim TabName As String Dim FullFilePath As String End Structure
Then for example I:
Dim tab as New TabStructure
some code
Then I add "tab" to an arraylist.
At some point I loop through my arraylist, grab data and create tabs from it. Of course the resulting list of tabs are out of sequence.
Can someone help me to sort my array list alphabetically by TabStructure.TabName?
I would greatly appreciate it.
Others have point out to you the List(Of T) - so I won't rehash that :)
But,
I'm going to talk about your structure. The fact is, there is almost
never
any reason to use a structure except for interop scenarios or where you
want
to preserve value symantics... TabStructure should be a class. This will
become apparent as soon as you start trying to modify individual members
of
your list:
Private Structure TStruct
Public s1 As String
Public s2 As String
Public Sub New(ByVal s1 As String, ByVal s2 As String)
Me.s1 = s1
Me.s2 = s2
End Sub
End Structure
Sub Main()
Dim l As New List(Of TStruct)
l.Add(New TStruct("one", "one"))
l.Add(New TStruct("two", "one"))
l.Add(New TStruct("three", "one"))
l.Add(New TStruct("four", "one"))
For Each i As TStruct In l
i.s2 = "changing..."
Next
For Each i As TStruct In l
Console.WriteLine("s1={0}, s2={1}", i.s1, i.s2)
Next
End Sub
You might be suprised that the values of s2 changend in the first loop,
don't
actually change anything. That's because TStruct is a value type, and any
time you assign or return it you get a copy and not the original. If I
change
TStruct to a class:
Private Class TStruct
Public s1 As String
Public s2 As String
Public Sub New(ByVal s1 As String, ByVal s2 As String)
Me.s1 = s1
Me.s2 = s2
End Sub
End Class
Then every thing works as expected.
So, again unless your doing interop or really want value symantics, there
is
not much gained by using a struct over a class.
--
Tom Shelton
This thread has been closed and replies have been disabled. Please start a new discussion. Similar topics
by: Herman |
last post by:
Hi everyone, I'm implementing Dijkstra's algorithm for a class
project, and I'm having trouble compiling the class that runs the
algorithm. All of the other files compile fine except for this one....
|
by: jarkkotv |
last post by:
Hi everyone!
I'm having a little problem when sorting the ArrayList and I was
wondering if there is a .NET guru who can help me out :)
I'm trying to sort ArrayList alphabetically in ASP.Net...
|
by: Rustam Asgarov |
last post by:
Hi.
I have ArrayList that contains structures...
I need to iterate through all structures in this array and update one of
members in this structures...
The first thing that comes to mind is just...
|
by: Joe |
last post by:
Hello All:
I am writing a function which accepts an ArrayList as its parameter and
converts the contents of the ArrayList into an XmlNodeList. The ArrayList
will contain one of several...
|
by: Brian Henry |
last post by:
Ok I've never implemented a snap location before so I dont really know what
im doing wrong here... anyways, I am making a custom slider control that
takes dates as its values instead of integers......
|
by: Christopher H |
last post by:
I've been reading about how C# passes ArrayLists as reference and Structs as
value, but I still can't get my program to work like I want it to.
Simple example:
...
|
by: NycCraze88 |
last post by:
Hey all,
I'm in a Java data structures class in college and I have a problem with this one sorting assignment. I'm not very experienced in java and have tried tackling this assignment in...
|
by: =?Utf-8?B?SmF5Qw==?= |
last post by:
I am trying to understand how to use an arraylist that contains data in a
structure and bind the results to a gridview. Using vs2008
I have looked at the examples
315784 HOW TO: Bind a DataGrid...
|
by: hcaptech |
last post by:
This is my Test.can you help me ?
1.Which of the following statement about C# varialble is incorrect ?
A.A variable is a computer memory location identified by a unique name
B.A variable's name...
|
by: Charles Arthur |
last post by:
How do i turn on java script on a villaon, callus and itel keypad mobile phone
|
by: emmanuelkatto |
last post by:
Hi All, I am Emmanuel katto from Uganda. I want to ask what challenges you've faced while migrating a website to cloud.
Please let me know.
Thanks!
Emmanuel
|
by: nemocccc |
last post by:
hello, everyone, I want to develop a software for my android phone for daily needs, any suggestions?
|
by: marktang |
last post by:
ONU (Optical Network Unit) is one of the key components for providing high-speed Internet services. Its primary function is to act as an endpoint device located at the user's premises. However,...
|
by: Hystou |
last post by:
Most computers default to English, but sometimes we require a different language, especially when relocating. Forgot to request a specific language before your computer shipped? No problem! You can...
|
by: Oralloy |
last post by:
Hello folks,
I am unable to find appropriate documentation on the type promotion of bit-fields when using the generalised comparison operator "<=>".
The problem is that using the GNU compilers,...
|
by: Hystou |
last post by:
Overview:
Windows 11 and 10 have less user interface control over operating system update behaviour than previous versions of Windows. In Windows 11 and 10, there is no way to turn off the Windows...
|
by: tracyyun |
last post by:
Dear forum friends,
With the development of smart home technology, a variety of wireless communication protocols have appeared on the market, such as Zigbee, Z-Wave, Wi-Fi, Bluetooth, etc. Each...
|
by: agi2029 |
last post by:
Let's talk about the concept of autonomous AI software engineers and no-code agents. These AIs are designed to manage the entire lifecycle of a software development project—planning, coding, testing,...
| |