I have a Collection, the keys are strings and the values are Collections. In the sub Collections the keys are strings and values are Singles/Floats. How would I loop through all of the data? I need to get the keys and values not just the values. I've tried this but it produces a cast error:
I often use a for/next loop to cycle through a collection to find a particular member of that collection based on some criteria. This works fine in every case except one: when I want to then erase the very member of the collection I just found. For example, if I wanted to give the heave-ho to every obect in a collection class that has a member veriable Color equal to Red:
[Code]...
The problem is once the collection class member is erased it makes to loop invalid because taking out the member reduces the total count of the collection in the middle of the loop. Eventually I get a "Index is out of range" error.This circumstance has bothered me every so often; I bet more experienced programmers have a different type of loop system that works better than this when you want to erase a collection member.
I am trying to make a collection of controls that I can loop through. So I have this code in my form... Dim WizardFrameCollection As New Control.ControlCollection(Nothing)
I then try to add controls to the collection by I get a error "Object reference not set to an instance of an object." WizardFrameCollection.Add(Me.GroupBox1) I am not sure why I am getting this error. Groupbox1 is a groupbox that is on the form.
Is there a way to create a collection of collections? e.g. I created a collection ListOf(Lines) After I add all my lines to it, I want to store this colleciton in another listOf(Collections). The reason I want to do this is because i want to create several separate collections of lines and I'll need to loop through them all to look for a certain line and I thought this would be a good approach if it's possible.
I'm implementing a customized Graph algorithm in vb.net, and I'm having the following problem:
Supose the code:
dim col as new collection dim myC as new system.collections.genericList(of myClass) dim obj1 as new myClass dim obj2 as new myClass
[code].....
'In the next statement, the myC2 inside col collection will be decreased to contain 'only obj1, like myC. I supose this is for myC and myC2 contains only a pointer to 'objects obj1 and obj2 as well col contains pointers to myC and myC2 myC.remove(obj2)'The problem is that I have to only copy myC to myC2, like a ByVal argument in a function,'instead a ByRef argument, in order to mantain a copy of objects in myC2 while these 'objects should be removed from myC. How should I do it?
How can I have it so that you can add items to a System.Collections.Specialized.String Collection but only if it is not there already? I have already found the code, but deleted it and cannot remember it. It is something like[code]....
I wanted to create a custom control with a custom Item-Collection in it.(Similar to the ListView Items, but with other properties)I wrote a Class that holds properties of a single Item data (ClassItemData) and another class that "Inherits System.Collections.ObjectModel.Collection(Of ClassItemData)". The Collection class contains a public event (ItemCollectionChanged) which is raised when "ClearItems", "InsertItem", "RemoveItem" or "SetItem" is called. (I used "Overrides" on all these functions and added the Raise Event to them.) The event is handled in the custom control itself and causes the control to refresh/repaint itself. The collection class contains also "Default Public Overloads ReadOnly Property Item(ByVal index As Int32) As ClassItemData" which returns the Item at the speciefic index.
The control refreshes itself when I place the control on a form and use code like: ControlName.Items.Add("TestItem") Unfortunately the control does not refresh itself when I use: ControlName.Items.Item(0).Visible = False The value of the Item itself has changed after this, but the control does know about the changes and does not refresh itself. If I do a manual repaint/refresh of the control, it looks all fine, but it does not work automatically. Does anyone know, what I have to add, so I can handle an event or something in the control when a property in the ItemData class has changed? How do I recognize changes in existing items and raise an event in the custom event?
have a collection that stores structures of data. my problem is that, after i have populated my collection, i do not know how i could change or update the data stored in the collection.my structure of data looks like this:
Structure tType1 Dim ID as Integer Dim QTY as Integer
I have a simple Dictionary(of String, Object) that I need to iterate through and change items depending on some conditions.As I can't modify a collection that I'm iterating through, how do I achieve this?For example, the following obviously causes an Invalid Operation Exception:
Dim mOptions As New Dictionary(of String, Object) mOptions.Add("optA", "A") mOptions.Add("optB", "B") mOptions.Add("optC", "C")
In an application I am working on I have created a product class which represents an inventory item. I have also created an inventory class which represents a collection of product objects. In the constructor of the Inventory class I load 4 products into a product collection. Each product consists of a code, description price and quantity.
I'm trying to just iterate through this xml and grab all of its data and add it to my collection(_personOC). Right now it's not working. How can I do this without having to specify the id? All I did was make a dataset with a person table and saved it as a xml.
Public Property personOC As ObservableCollection(Of Person) Get Return _personOC
I decided to go back to the VB6 book, "Learn to Program Visual Basic Objects", so I can code it in VB2010. This has been a great learning experience. However I've run into a problem. I'm getting an error with a For....Each loop for a collection class. The error message states, Expression is of type 'China.Order', which is not a collection type." From what I've deduced the problem deals with an enumerator. I could be wrong.
I'm trying to loop through a collection object in vb2010.The code was originally used in Vb6 The book said that I needed to code a NewEnumerator method first in order to be able to loop through my collection. I coded the following:
[code]...
It gives an error for IUnknown, staging that IUnknown is not accessible in this context because it is a 'Friend'.In the line in the function I removed the Set since it's no longer needed.The error message for this line is '_NewEnum' is not a member of 'Microsoft.VisualBasic.Collection'What are these messages and how do I fix this in VB 2010?m_colCourse is not a system collection.
I want to display a list of open windows on my computer in a rich text box. So, I'm trying to store the names of all windows in myString, and then set RichTextBox1.Text = myString.
Here's the code
Imports System Imports System.Collections.Generic Imports System.Collections.ObjectModel
vb Dim s As String = strContents '<a global variable) Dim currentPos As Int64 = 0 Dim endPos As Int64 = strContents.Length - 1 '// A dictionary, used to count the frequencies Dim characterCounter As New Dictionary(Of [String], Int64)() While currentPos <> endPos '//
[CODE]...
Gives this error: Value of type 'System.Collections.Generic.KeyValuePair(Of String, Long)' cannot be converted to 'System.Collections.DictionaryEntry'.
I am trying to use a Web Service to return Json for a Collection of Users from a Database Table. I'm only new to .NET (< 1 week experience), and I don't want to use the UpdatePanel for AJAX. I have tried using the JavaScriptSerializer as well as Json.NET to serialize. Both cases seem to spawn an Infinite Loop.[code]
Is there a way to to combine line's 1 and 2? I only want to loop through a list of the selected items in this listbox. This works just fine, I just wondered if there was a collection of selected values returned that I could use to avoid having to do it this way.
For Loop1 = 0 To MyListBox.Items.Count - 1 If MyListBox.Items(Loop1).Selected = True Then ... End Next
This is weird. I have a class that inherits from IEnumrable whose Count property is reporting 0 (zero) elements but the For Each loop steps into the loop body and tries to use the variable where it should just be moving on. My code:
On Error Resume Next Dim d As Foo For Each d In fooCollection ' use d and throws an exception Next d
Weirder still, every time d is accessed i get an exception thrown in the output window:
A first chance exception of type 'System.NullReferenceException'
but i'm not stopping on the exception (not in a try/catch block).Is "On Error Resume Next" causing this weirdness?
Weirdness found:Per Rowland's and JohnH's comments i checked the Foo class:The GetEnumerator method inside of Foo didn't actually return anything! It had an empty body. That coupled with the On Error Resume Next before the loop caused the havoc! Wow this was ugly.
I would like to be able to save to a db and send task to email or as text msg for instance nevermind that.. I have two variables of type ArrayList they are "_mList1" , "_mList2" and "_mList3"
_mList1 stores the list of Telephonenumbers , _mList2 stores the list of StaffIDs and _mList3 Some concatenated string.
theses variable lists will hold some data in runtime as explained and i would like to use them to populate a DB table again mentioned
I am encountering an error when looping through datarows. I searched SO and tried the solutions, but no luck. Collection was modified; enumeration operation might not execute.
Dim dRow As DataRow For Each dRow In dt.Rows dt.Rows.Add(dRow("CustNum"), dRow("SalesRepName"), dRow("mgrid"), "=""" & dRow("midValue") & """", dRow("dba"), dRow("sysDate"), dRow("statusID")) Next
The error occurs the first time the code hits "Next". What would be causing Collection was modified; enumeration operation might not execute.How can I resolve this error?
What's really the point in using the former?It's hard to use linq if I used the former. I have to convert that to an array first which is difficult because there is no (asarray) function.I think I would change all of my code that's using System.
Collections.Specialized.StringCollection to System.Collections.Generic.List(Of String)
I would like to create a group/collection/set of unfinished rows that I can later add to a datatable.I have tried to do this by creating a DataRowCollection, and then create a new row based on the table I want then add it to the collection. Doing that I get a NullReferenceException though.Using the new keyword for dr does not work.[code]......
Im using buttons from A to Z in a toolstrip which I need to capture the text property of the button which trigger click event. I do it this way which took a long coding to mention all buttons (A-Z) click events.
vb Private Sub az_btn(ByVal sender As Object, ByVal e As System.EventArgs) Handles A_ToolStripButton.Click, B_ToolStripButton.Click ... Z_ToolStripButton.Click 'shows text property of the clicked button MessageBox.Show(sender.ToString) End Sub
Is the memory from primitive data types (int, char,etc) immediately released once they leave scope, or added to garbage collection for later release?
consider:
For x as integer=0 to 1000 dim y as integer Next
If this doesn't add 1000 integers to the garbage collector for clean up later,how does it treat string objects? would this create 1000 strings to clean up later?
For x as integer=0 to 1000 dim y as string="" Next
How about structures that contain only int,string,etc... data types?
I tried this vb Dim matches As String() = Regex.Matches(tmpFieldContent, strEmail).Cast(Of Match)().ToArray() But it didn't work, as vb says 'Cast' is not a member of System.Text.RegularExpressions.MatchCollection'.
I am populating a collection from some tables in the database which serves as a look-up from controls (combobox) I am using but what I want is rather than hitting the database each time can I just cache the collection and get the collection from the cache? The look-up table may or may not change all the time so I would want to have a way to validate if the cached collection is still valid or not.
I have created football (American) play creator. When the user is satisfied with a play he has created it is saved it as a file with a .play extension. What I want to do is to cycle through all the files in a folder (probably named after the team), and place each one that has the .play extension into a CList (of ClPlay) collection.I have been able to successfully load one play at a time by using this code...
Dim fs As Stream = New FileStream(diaOpenPlay.FileName, FileMode.Open) Dim bf As Runtime.Serialization.Formatters.Binary.BinaryFormatter = New Runtime.Serialization.Formatters.Binary.BinaryFormatter() Dim Play As CLPlay Play = CType(bf.Deserialize(fs), CLPlay)
...but that was when a specific play was selected from a load dialog box. This time I want to load all the plays in a folder and store it in a collection, and I'm not sure how to modify the above code to do that.