Code - Way To Do With A Generic Dictionary ?
Jul 9, 2009You can do this
Code:
Dim Test() As String = {"Stuff", "Stuff", "Additional Stuff"}
Is there a way to do that with a generic dictionary? Also, is there a name for that?
You can do this
Code:
Dim Test() As String = {"Stuff", "Stuff", "Additional Stuff"}
Is there a way to do that with a generic dictionary? Also, is there a name for that?
I have created a Dictionary class (MyDictionary for the example). I am currently trying to pass MyDictionary into a function, filter it into a new instance of MyDictionary and pass this new instance into another method. When I am attempting to create the second instance from the filtered first instance of MyDictionary via Lambda Expressions and the ToDictionary Method, I am getting the following error:
Unable to cast object of type 'System.Collections.Generic.Dictionary`2[System.Int32,System.String]' to type 'MyDictionary'. I have simplified the example and recreated it in LINQPad and am getting the same error.
Here's the simplified version of my code:
[Code]...
I have a generic class called SessionManager to control the types of variables I store in session. I have been doing it for String, Integer, List(Of T) without any issues like this.
Public NotInheritable Class SessionManager
'''<remarks>
'''Private constructor to prevent instantiation of, or inheritance from, this class.
[code].....
I would like to do the same for Dictionary(Of T, T). I would like 2 generic private methods for Dictionary(Of T, T) for getting and setting; GetFromSessionAsDictionary and SetInSessionAsDictionary. (When nothing returns empty dictionary like the List(Of T) properties and sets in session) And this should allow me to create as many public properties of Type Dictionary (e.g. Dictionary(Of String, String), Dictionary(Of String, Integer)) as possible to store in session.
EDIT:This is what I have ended up doing after trying to make it generic Dictionary(Of T, T), and it works without any issues. What I want instead is a solution that would not constraint the type to Dictionary(Of String, Integer).
Private Const _Dictionary1OfStringInt As String = "DICTIONARY_1_OF_STRING_INT"
Public Shared Property DictionaryOf As Dictionary(Of String, Integer)
Get
[code].....
As I am beginner in LINQ, I have small problems. I have dictionary of Char and Long, and I would like to use LINQ to retrieve Char with highest Long Value. I saw some C# samples, which look pretty easy, but I can't achieve such expression in VB.Here are two expressions, and I don't think they are most efficient possible.
[Code]...
I have a mutable class that I'm using as a key to a generic dictionary. Two keys should be equal only if their references are equal. From what I've read, in this case, I don't need to override Equals, GetHashCode , or implement IEqualityComparer.
View 5 RepliesI have a Generic Dictionary contained or nested as a child in another Generic Dictionary. I need to be able to access the child dictionary objects by key. When I attempt to do this I get the following error:
"Value of type 'System.Collections.Generic.KeyValuePair(Of String, String)' cannot be converted to 'System.Collections.Generic.Dictionary(Of String, String)'."
So it seems that the contained Generic Dictionary is being returned as a Generic KeyValuePair when accessed via a key as opposed to iterating through the parent dictionary in a For/Each loop.
The first section of the sample works OK (using a key to access a string value in a dictionary).
The second section of the code works OK (iterating through the dictionary values in a For/Each).
The third section of the sample is where the error occurs (using a key to access a nested generic dictionary...see underlined code).
Dim td1 As Dictionary(Of String, String)
For Each thisKey As String In td1.Keys
Debug.Print(td1(thisKey))
Next
Dim td2 As Dictionary(Of String, Dictionary(Of String, String))
[Code] .....
I'm having problems binding 2 combo boxes to a generic dictionary, this is what i have done so far
Dim cb As ComboBox = sender
Dim name As String = cb.Name.ToString
Dim dict As New Dictionary(Of String, List(Of String))
[Code]....
I was trying to create a generic Dictionary that implements IXmlSerializable (credit to Charles Feduke).
Here is my trial:
Sub Main()
Dim z As New SerializableDictionary(Of String, String)
z.Add("asdf", "asd")
[Code].....
If i wish to put items into a System.Collections.Generic.Dictionary, I can either Add or set the Item.I know if you do Add it helps you check if the key already exists and if not it throws an exception.Now I'm curious, so if I'm adding a ton of items, should I prefer setting Item instead of Add since Add does unnecessary checks that may actually slow things down?
View 3 RepliesIs there any reason to favor one of these approaches over the other when inserting into a generic dictionary with the possibility of a key conflict? I'm building an in-memory version of a static collection so in the case of a conflict it doesn't matter whether the old or new value is used.
If Not mySettings.ContainsKey(key) Then
mySettings.Add(key, Value)
End If
[code].....
We have migrated our Vb6 application to VB.NET using a third party tool. Now we are in a process of Refactoring and introducing object oriented concepts in the application.
In VB6, we were using structures in many places. As a part of introducing object oriented programming,
1. is it a good idea of changing all Structures to Classes? or Is there a concept of "Generic Structure" similar to Generic collections, Generic classes?
2. Can some one guide me any source containing guide lines or best practices for applications that are migrated to VB.NET from VB6 and implementing object oriented programmaing.
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.
[Code]...
I need small code for array/dictionary to pullout data conditionally.i have data:
oid----opriority----task
10--------3-------Task1
5--------1--------Task2
1--------6--------Task3
i need to build one array/dictionary to store the data in this format then i can pull the value like.
select oid where task = task1 order by opriority
It is easy for me do in database table, This is run time and i need to work in RAM. how i can build the array and pull the data accordingly.
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
[CODE].........................
I have the following object:
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)
The best result I could get was:
Lookup(of MasterCategory, Dictionary(of Date, Integer))
From:
countDictionary.ToLookup(Function(o) o.Key.MasterCategory, Function(o) o.Value)
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
[code]....
I must be doing something wrong here (because really, what are the chances of me tripping over another bug in the Vb.net compiler?)I have a static generic function in .net 2.0 Vb code, I thought it was time to "upgrade" it to be an extension method, but the compiler complains with Extension method 'AddIfUnqiue' has type constraints that can never be satisfied.
Here's a trivial example that displays the same problem. The old static version (which works fine) followed by the extension method
Public Class MyStaticClass
Public Shared Sub AddIfUnqiue(Of T, L As {List(Of T)})(ByVal this As L, ByVal item As T)
If this.IndexOf(item) < 0 Then
[code].....
I got that line of code and it's getting duplicated a lot
myString = If(myObj1.myProp Is Nothing, "", If(want = "abr", myObj1.myProp.abr, myObj1.myProp.desc))
VS 2008 Remember Textbox Text when Form reopens
I'm trying to convert a batch of .pngs to .jpgs, as in this question:
[Code]....
The call to jpg.Save, however, with a "generic error" in GDI+. Originally outside of the innermost Using statement, I moved the call inwards as per this answer, but it didn't change anything. I have verified that newfile contains a valid path, and that the program has write access to the directory. What am I missing?
I use VS2005 and I have just started working with the dictionary in particular the Dictionary.ContainsKey method. At the bottom of the page in the msdn library it says the following in the community content How to make sure that Contains functions properly.
View 3 RepliesConsider:
Public MustInherit Class Column
Public ReadOnly Property ReturnSomethingUseful() As Object
Get
'return something useful
[code]....
But this gives the following error:
Public Overrides Function ParseValue(sValue As String) As Boolean'
cannot override 'Public Overridable Function ParseValue(sValue As String) As Object'
because they differ by their return types.
I accept that you can't do this, but I'd like to be able to preserve the semantics of what I'm. trying to do, which is to have an untyped version that deals with Object, but a typed version in derived classes that knows about the specific type T.
This code:
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 have a Journal that records entries for different types: Journal(Of ParentT)
[Code]....
I am trying to construct a generic interface class with generic functions. My goal was to use this to implement multiple worker classes for database interaction that have the same basic functionality. Each class will deal with different object for example, category, product or supplier but unless the the functions in the interface are generic that this won't work.This is the interface code that I have but I don't know if I have done it correctly. [code]
View 2 RepliesI am trying to create a list of a generic type in vb.net 2.0 framework.
This is the generic type definition:
Public Class GenericParamMap(Of T)
Public Sub New(ByVal pParamName As String, ByVal pPropValue As T)
mParamName = pParamName
[Code]....
The compiler does not allow a "T" in the method's parameter because it's not defined, but I'm not sure how or where to define it. I thought it was okay to have a generic method definition.
I am trying to write a generic method, to avoid code duplication, which will create or activate a Form as an MDI children, based on its type. But I have to lines in error (see comments).
[Code]...
What is that ... Well I was not too sure how to title this question, and even after telling the client it was difficult if not impossible, he insists it's what he wants.. so here goes the question.. The client has several SQL systems running on site that collect data from different processes (Between 1 and 10 minute intervals depending on the process been checked). Note: these systems sit on different parts of the site..
[Code]...
If i have an object that implements an interface (and don't know the exact object) i can call a sub (DoSomething) by going:
vb
Dim iObj = trycast(something, iInterface)
if iObj isnot nothing then
iObj.DoSomething()
end if
How can I do this for a Generic? such as...
vb
Public Class TestClass(of T)
Public sub DoSomething()
....
end class
I have been using a pretty slick generic invoke method for UI updating from background threads. I forget where I copied it from (converted it to VB.NET from C#), but here it is: Public Sub InvokeControl(Of T As Control)(ByVal Control As t, ByVal Action As Action(Of t))
[Code]....
I can do this without problem.
Class A
End Class
Class B : Inherit A
End Class
Dim Obj1 As A = New B
How would I go about copying every value of one Dictionary list to another Dictionary list.
Here is what I've done:
VB.net
' Assign values to player pairs enumeration
Private Enum cmptrPairsList
empty = 0
[code]....