2010-04-20 3 views
3

J'essaie de comprendre comment gérer l'union ou la fusion de deux listes qui peuvent avoir des doublons. Par exemple, List1 a {A, B, C} et List2 a {B, C, D}. J'ai essayé d'utiliser l'opération Union et j'ai obtenu une nouvelle liste avec les valeurs (A, B, C, D}, mais j'ai besoin des valeurs de B & C de la deuxième liste, pas la première Y at-il un moyen de spécifier la méthode syndicale, qui en double la valeur à utiliserGestion de l'union de liste en C# avec des doublons

le code J'utilise est maintenant

var newList = List1.Union<Object>(List2).ToList(); 

Merci pour toute aide Javid

+3

Comment savez-vous qu'ils proviennent d'une liste au lieu de l'autre? –

+0

Oui, j'ai essayé d'inverser la liste en faisant une union avec List2.Union (List1). Cependant, cela change l'ordre et je termine avec une liste comme {B, C, D, A}. Ce que j'essaye de réaliser est, ma commande de liste 1 doit être préservée et devrait être remplacée par des doublons de List2. Désolé, j'aurais dû préciser ce point avant. – user320587

Répondre

2

Pourriez-vous le faire:..

var newList = List2.Union<Object>(List1).ToList(); 

.. en les inversant vous donnera probablement ceux dont vous avez besoin?

EDIT:

Cela ne semble pas fonctionner. Désolé, je n'ai pas testé, c'était juste une première réaction au problème.

Que diriez-vous, en utilisant la notation inversée ci-dessus, mais en appelant ensuite List.Sort() pour les remettre dans l'ordre que vous voulez? Il suppose que vous avez une propriété à commander, mais vous pouvez même créer artificiellement un si quelqu'un ne propose pas une solution plus élégante.

0

Avez-vous essayé

var newList = List2.Union<Object>(List1).ToList(); 
0

vous pouvez regarder Joining vos listes à la place. Après cette opération, vous auriez les objets "join" pour chaque duplicate à inspecter ...

+0

Salut Rob, Avez-vous un code d'échantillon. Je suis assez nouveau à Linq et j'essaie de comprendre autant que possible. Merci – user320587

+0

désolé, il y avait un lien se cachant sur mon poste: http://www.hookedonlinq.com/OuterJoinSample.ashx –

7

Union est logiquement une opération définie. Concat est ce que vous cherchez.

List1.Concat(List2) 
Questions connexes