Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Grouping using LINQ [duplicate]

I'm having a heck of a time with transforming a simple SQL Query into a LINQ query(using vb btw)

Here is my SQL:

SELECT     USRDEFND5
FROM         int_gp_employee
GROUP BY USRDEFND5

The xml looks like this:

<int_gp_employee>
  <row>
    ....
    <usrdefnd5>Some GUID</usrdefnd5>
  </row>
</int_gp_employee>

I've tried a number of different variations of the LINQ. My current statement is:

From b In xmlFile...<row> Group b...<usrdefnd5> By b...<usrdefnd5> INTO group

when I foreach through the resulting collection, EVERY line (17000) shows up.

Thanks for taking a look.

like image 434
spuppett Avatar asked Feb 05 '10 17:02

spuppett


1 Answers

I'm afraid I don't know the VB equivalent for sure, but in C# this would be:

var query = from row in xmlFile.Descendants("row")
            group row by (string) row.Element("usrdefnd5");

Without using XML literals, the VB would be:

Dim query = From row In document.Descendants("row") _
            Group row By CStr(row.Element("usrdefnd5"))

EDIT: If you just need the distinct keys, then something like:

Dim query = From row In document.Descendants("row") _
            Select CStr(row.Element("usrdefnd5")) _
            Distinct
like image 142
Jon Skeet Avatar answered Oct 17 '22 04:10

Jon Skeet