Group collections into unique sets

40 Views Asked by At

I have data in which needs sorting into individual sets based on having unique id's per set.

For instance I am starting with the below (its actually a pending sql query, but making up the below as an illustrative example):

IQueryable<DataType> data = [
    {id: 1, description: "some description1", state: 1, associateId: 5}
    {id: 2, description: "some description2", state: 1, associateId: 6}
    {id: 3, description: "some description3", state: 1, associateId: 7}
    {id: 4, description: "some description4", state: 2, associateId: 5}
    {id: 5, description: "some description5", state: 1, associateId: 6}
    {id: 6, description: "some description6", state: 1, associateId: 5}
]

And I need it as:

IQueryable<DataType>[] sortedData = [
[
    {id: 1, description: "some description1", state: 1, associateId: 5},
    {id: 2, description: "some description2", state: 1, associateId: 6},
    {id: 3, description: "some description3", state: 1, associateId: 7}
],
[
    {id: 4, description: "some description4", state: 2, associateId: 5}
],
[
    {id: 5, description: "some description5", state: 1, associateId: 6},
    {id: 6, description: "some description6", state: 1, associateId: 5}
]

I need a solution which will continue to stitch to the sql query and not call the data into memory for processing.

Grouping by state would only give me two groupings. I need to have unique entities in each grouping based on the associatedId, without a loop (eg bringing into memory).

I feel like I need to apply Distinct somehow, but cant see where.

0

There are 0 best solutions below