Calculate The Group By Count Of Keys In A Dictionary?
Nov 10, 2010
I have the following dictionary:
Dim idQueuedJobs As IDictionary(Of Int32, KeyValuePair(Of String, Int32)) = New Dictionary(Of Int32, KeyValuePair(Of String, Int32))
Why duplicate KeyValue pair? This is because the first Int32 is just a normal index, and the String followed by another Int32 contains systemnames and the priority of the qued job in idQueuedJobs
I want to calculate the total number of systemnames in idQueuedJobs, how can i obtain this count by using the groupby method?
Something like this maybe?
numberOfSystems As Int32 = idQueuedJobs.Values.GroupBy(...)
Dim Rooms As New Dictionary(Of Integer, Of Integer) Rooms(1) = 101, 102, 109, 110 Rooms(2) = 103, 104, 105 Rooms(3) = 106, 107
I want to know if i can obtain how many keys are in the dictionary For example, in this dictionary i have 3 keys, and if i use Rooms.Count it returns me 9 thats each pair of keys-values, but i want to obtain 3, each diferent value as key.
EDIT: Sintax error P.D: I cant use now because i have to use in a webservice filtered by IP, but VS2010 if i use count on the dictionary, tells me that will contain the number of the keys/value pairs.
I have this dictionary.. Dim Rooms As New Dictionary(Of Integer, Of Integer) Rooms(1) = 101, 102, 109, 110 Rooms(2) = 103, 104, 105 Rooms(3) = 106, 107
I want to know if I can obtain how many keys are in the dictionary. For example, in this dictionary i have 3 keys, and if I use Rooms.Count it returns me 9 that's each pair of keys-values, but I want to obtain 3, each different value as key. Syntax error. I cant use now because I have to use in a webservice filtered by IP, but VS2010 if I use count on the dictionary, tells me that will contain the number of the keys/value pairs.
I have a dictionary(of someType, someOtherType) (the types are immaterial). With a given value, I need to find all the keys that have that value in the dictionary. What I am currently doing is this:
Dim foundList as New List(of someType) For each key as someType in myDictionary.Keys If myDictionary(key) = givenValue Then
I have a dictionary with the keys being integer and the values being string. I was wondering how can I sort the dictionary in DESCENDING order using its keys.
Is 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
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 a generic dictonary which is templated in the following manner:
[code...]
If I wanted to omit certain list items against arbitrary keys (that is the items that are in the list contained within the value part of each of the key value pairs making up the dictionary) given some arbitrary condition (lets say omitting list items where a list item contained the string "abc")
I would expect to able to create/project into a new dictionary which would contain entries which contained lists WITHOUT those items whose name contained "abc"
In MS Reports, I have a tablix(table) where I group on foo. How do I get the count for each group? This is how I would do it for the total count: =Count(Fields!foo.Value) , but it's not enough.
Im making an key counter and ive got the program to count all keys at the time, i just can't count mouse buttons, i would really like to have help with this, if any of you wanna help im online at my own IRC chat. [URL]..
I have to perform the following SQL query: select answer_nbr, count(distinct user_nbr) from tpoll_answer where poll_nbr = 16 group by answer_nbr The LINQ to SQL query
I'm developing Asset Management System, it will compute for straight line depreciation, my problem is how to calculate running total on each group that I've extracted from my database.Here's a snippet for my extraction of data
Private Sub cboAType_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cboAType.SelectedIndexChanged ListView1.Items.Clear() If Not cboAType.Text = "-" Then
I have the following SQL query to return all Customers who have no OrderLines with no Parts assigned - i.e. I only want the customers within which every order line of every order has no parts assigned - (in the actual problem I am dealing with a different domain but have translated to customers/orders to illustrate the problem)
SELECT c.Customer_PK FROM Customers c INNER JOIN Orders o[code].....
This works but generates less than optimal SQL - it is doing a subquery for Count on each row of the customers query rather than using Group By and Having. I tried making the LINQ Group By syntax work but it kept putting the filter as a WHERE not a HAVING clause.Edit in response to Answers below: I am accepting JamieSee's answer as it addresses the stated problem, even though it does not produce the GROUP BY HAVING query I originally had.I am a VB developer so I have had a crack translating your code to VB, this is the closest I got to but it does not quite produce the desired output:
Dim qry = From c In context.Customers Group Join o In context.Orders On c.Customer_PK Equals o.Customer_FK Into joinedOrders = Group[cod].....
The problem I had is that I have to push "jl" into the Group By "Key" so I can reference it from the Where clause, otherwise the compiler cannot see that variable or any of the other variables appearing before the Group By clause.With the filter as specified I get all customers where at least one order has lines with no parts rather than only customers with no parts in any order.
How do I write an expression to calculate all characters of each row by my own defined value to each character = all the A and B and C and etc. will be as 2 and all I and J and whatever ... will be 1 so I need an end result of the total.
I have the below Linq query that is returning the data but I need to aggregate the columns to group on the Period and Sum the Count columns. How do I go about doing this?
LINQ from t In tblTimes join h In tblEngineeringDashboard_CADMachinesCounts on t.ID Equals h.TimeID Order By t.Period
I have a problem detecting whether one of the arrow keys is pressed, all the other keys seem to be detected apart from the arrow keys??? I have set key preview to True........ It detects the arrrow keys BUT ONLY if I have NO other controls on the form??? example..
Me.Text = e.keycode
It works, but then if I add a button for example, it stops.
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.
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
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 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.
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.