I want to group items from a linq query under a header, so that for each header I have a list of objects that match the header title. I assumed the solution would be to use ToDictionary to convert the objects, but this allows only one object per "group" (or dictionary key). I assumed I could create the dictionary of type (String, List Of()), but I can't figure out how to write it. As an example I have written a simplified version below.
countDictionary As Dictionary(of Category, Dictionary(of Date, Integer))
The Class has a Enumeration Property. For the purposes of demonstration, I'll call it MasterCategory.I have been trying to get out an object that looks like the following:
groupedCountDictionary As Dictionary(of MasterCategory, Dictionary(of Date, Integer)
Which results in a IEnumerable (Of Dictionary(of Date, Integer)) for each MasterCategory value.However, I need that IEnumerable of Dictionary flattened to one dictionary with all the integers summed (total counts) for each date. I then tried to use various selects and group bys (from numerous stackoverflow posts) to "flatten" it, but my efforts have fallen short.
Current Code
[Category Class] - MasterCategory As Enum - Name As String etc
I am trying to populate a dictionary with objects created from data in a recordset, but am having difficulty with VB's object referencing. I am very new to VB. Pseudo code of what I am trying to do:
dim dict as Dictionary rs = getRecordSet while rs.moveNext set myObj = new MyClass myObj.properties = rs.relevantFields dict.add myObj.getUniqueKey, myObj wend
However, all 'objects' in the dictionary are actually references to the most recently created (and thus last) object in the dictionary. I know why what I am doing above is not working, but I don't know the correct way to do it so that each element in the dictionary is it's own object.
ArialRegular8 | <Corresponding Font Object> ImpactItalic10 | <Corresponding Font Object> TimesRomanRegular12 | <Corresponding Font Object>
These font types come from an external library, the real type is DocumentFont, I prefer not to store just values and recreate the font object later, so I need to store the object, and i want to be able to call Contains() later without looping. like for example Dictionary (of T Key, T Value), is this the best option? Also, to be able to call Contains(), i will have to overload function Contains() using an Interface or this is already built-in in some Collections / Dictionaries when using a String as Key?
I'm having trouble implementing an IComparer method. Essentially, I want to compare the properties of two custom objects (the properties are of type integer).dE is a Dictionary(Of String, customObj)prTabIndex is a property of customObj and is of type Integer (these hold true for all examples)After some more searching I found this thread which suggested 3 things: a List approach, utilizing LINQ, and using some C# 3.0 features. I've tried three different ways:...rolling my own IComparer implementation:
Public m As Sub(ByRef d As Dictionary(of String, customObj)) Dim sortedD As New SortedDictionary(Of String, customObj)(d, myCompare) End Sub
[code]....
Note that VS2008 has underlined 'dE.ToDictionary...' (to the end of the line) and giving me two messages depending on where I hover my mouse:
1) "Data type(s) of the type parameter(s) in extension method 'signature' As 'signature defined in 'System.Linq.Enumerable cannot be inferred from these arguments. Specifying the data types explicitly might correct this error. Seen while hovering over "ToDictionary".
2) Nested function does not have the same signature as delegate 'signature'. Seen while hovering over anything after "ToDictionary".
Q1) How far off am I in each of the implementations?
Q2) Which one is the computationally least expensive? Why?
Q3) Which one is the computationally most expensive? Why?
I don't know if this is doable, maybe with Linq, but I have a List(Of MyType):
Public Class MyType Property key As Char Property description As String End Class
And I want to create a Dictionary(Of Char, MyType) using the key field as the dictionary keys and the values in the List as the dictionary values, with something like:
New Dictionary(Of Char, MyType)(??)
Even if this is doable, internally it will loop through all the List items, I guess?
I have a dictionary that has strings variables as keys and a List collection of doubles as values.
Dim CellAddressContainer As New Dictionary(Of String, List(Of Double)) Dim Results As New List(Of Double) Within a loop I populate the Results variable as follows:
I have a VB.NET project where I am able to iterate through the keys and values collections of a dictionary object using an index:
MyDictionary.Keys(idx) MyDictionary.Values(idx)
When this code is taken from the test project and placed into the real project I get the following error:
'System.Collections.Generic.Dictionary(Of Double, String).KeyCollection' cannot be indexed because it has no default property.[code]...
In the line in sub search that says "dtf.Keys(idx) = 0" place your cursor after the right parenthesis and backspace you should get a tooltip that says, "<Extension> ElementAtOrDefault(index as Integer) as Double - index: the zero based element of the index to retrieve.
I have two nested objects, and the form has two ListBoxes, where I want the last to respond to the selection of the former. It can even be some times deeper than 2 levels, which can make it a bit cumbersome. I solve it by raising events in any method that makes an add/delete/rename of these objects, and the form listens for these events, and when fired, clears it's lists, and loops through these objects to populate the lists again. binding lists, but this seems to introduce a few issues. First I need to keep a set of extra lists in the main BLL class, but more importantly, I feel I'm violating the layered structure between the BLL and the form, as in this case, the BLL needs to keep track of the current selected indexes of the listboxes in some variable. So that doesn't feel right, as it makes the BLL vulnerable to what the form does, and I assume is simply principally incorrect.
Following is example of object structure, where two ListBoxes should display "Company Names" and "Employee Names", and the Employee name listbox obviously change according to the selection in the Company Name listbox.
Public Class Form1 private _main as New Main ... End Class
I have created a class with a function in it. I have a collection of data I want to pass back. I tried an arraylist first. Now I am trying to use a dictionary. My problem is that it creates the dictionary ok, but I am only get the last row of data from my
Function GetWeldAuditInfo(ByVal ResourceId As String, ByVal VendorId
I am having a problem with objects and arrays of objects. Basically obj_stored holds how many objects I have stored in my text file, in this case t shirts. line(y) is an array that holds each line that has been read from the text file. I then use this to assign values to my array objects properties. For example I know the first line is the color of the first t shirt, second size, third price etc. Then I know the next line will be the color of a new t shirt. There are 6 t shirts in the file.
Dim t_shirt(5) As Clothing.t_shirt Dim t_shirt_purchased As New Clothing.t_shirt For x = 0 To obj_stored t_shirt(x) = Clothing t_shirt(x).color = line(y) y = y + 1 t_shirt(x).size = line(y) y = y + 1 t_shirt(x).price = line(y) y = y + 1 Next MsgBox (t_shirt(4).size)
My problem is it seems to be resetting these values after it has finished. Im creating the object each time and assigning values to it's properties but when it's finished it all resets and says 'Object reference not set to an instance of an object'. I'm new to OOP and was wondering what sort of approach i would take to doing this, if the one i am taking is wrong.
So I am aiming to: Read everything in from the text file. Create new instances of the objects depending on how many t shirts are stored, (5 t shirts = 5 objects) Assign the values to my objects properties.
I'm new in this forum. I am also quite a rookie programming in VB2008. In fact I'm not even a professional programmer. The situation is as follows.
I was hired by a company to do an Industrial Engineering job, but after some time, I realized that my job was also to design a database manager in VB2008 for the train wheel stock. So I am terribly lost. My problem here is that I dont know how to compare values and assign the biggest with the biggest, the smallest with the smallest etc. So I want to create a table and auto-arrange the values. An example of what I want to do in a macro of Excel is[code]...
I have used XML serialization to persist objects in my application but I am now interested in using null- able Data types for properties. Will I still be able to serialize?
I'm completely new to VB.NET and this is likely a few steps over my head, but have managed to get myself this far with just Google.I'm reading an XML file and creating an arraylist of classes for the values in there, as seen:
Public Class yresults 'Dim xdate As XmlNodeList = xDoc.GetElementsByTagName("Date") 'Dim link As XmlNodeList = xDoc.GetElementsByTagName("Link")
Im doing the same thing as him but in vb express 2008 what i have is a checklist box of 10 toppings, all of which can be selected, (no max or min) to put on a pizza, and i have 3 radio buttons grouped together for pizza size (S, M, L) i cant figure out how to give them vaules in which(for sake of demonstration) s=$5 m=$7 l=$9 and each topping is $0.25 then make them add up to an order total in a msg box or something like that
I coded a class that scans an object and maps data from a data table into each one of the corresponding properties, it works very well, however I am not able to set the property of one of the child (coplex objects)
Public Class CntrConfHdr Private m_CntrConfHdrID As Double Private m_HeaderCode As String
[Code]...
I want to set the value for the child object TypeCurrency.TypeCurrencyID thus I set the value of the variable sTargetPropertyName to TypeCurrency.TypeCurrencyID but the application willnot work stating that the property can not be found.