J'ai les objets suivants:Comment puis-je obtenir les éléments distincts de la structure de données suivante en C#/LINQ?
public class Agency
{
public int ID;
public IEnumerable<BusinessUnit> BusinessUnits;
}
public class BusinessUnit
{
public int ID;
public decimal AmountSpent;
public IEnumerable<Client> Clients;
}
public class Client
{
public int ID;
public decimal AmountSpent;
}
maintenant, je IEnumerable <Agency
> qui contient plusieurs organismes, ces organismes contiennent plusieurs SECTEURSD'ACTIVITÉS, et ces SECTEURSD'ACTIVITÉS contiennent plusieurs clients.
Il pourrait ressembler à:
Agence1
++ BusinessUnit1 - 20
$ ++++ Client1 - 10 $
++++ Client2 - 10 $Agence2
+ + BusinessUnit2 - 20 $
++++ Client1 - 20 $Agence 3
++ BusinessUnit1 - 10 $
++++ client5 - 5 $
++++ Client6 - 5
$ ++ BusinessUnit2 - 25 $
++++ Client1 - 25 $
Maintenant, ce que je cherche à faire, est de créer une liste de BusinessUnits et de clients, mais pour toutes les agences, sans doublons.
Donc, je suis à la recherche de transformer cette liste des agences dans:
Toutes les agences
++ BusinessUnit1 - 30
$ ++++ Client1 - 10
$ ++++ Client2 - 10 $
++++ client5 - 5
$ ++++ Client6 - 5$ ++ BusinessUnit2 - 45
$ ++++ Client1 - 20$ ++++ Client1 - 25 $
Là où j'ai simplement une liste de SECTEURSD'ACTIVITÉS uniques (avec leur total AmountSpent correcte dans tous les cas de ce BusinessUnit particulier), et une liste de clients uniques en eux, avec le montant AmountSpent correct pour chaque instance de ce client particulier sous cette unité commerciale.
Est-il possible avec LINQ que je puisse interroger ma liste IEnumerable <Agency
> Agences pour retourner ma liste distincte de combinaisons BusinessUnit/Client avec les sommes correctes?
@Alan, corrigez. Agency.BusinessUnits ne dispose que d'un BusinessUnitID – KingNestor
@Alan, mais vous pouvez avoir Client1 à deux endroits différents parmi 2 BusinessUnits différents. – KingNestor