Comment fusionner deux listes IQueryable
Je veux fusionner les enregistrements de deux IQueryable listes en C#. J'essaie
IQueryable<MediaType> list1 = values;
IQueryable<MediaType> list2 = values1;
obj.Concat(obj1);
et
IQueryable<MediaType> list1 = values;
IQueryable<MediaType> list2 = values1;
obj.Union(obj1);
mais si list1
est vide, alors la résultante de la liste est également vide. Dans mon cas, soit list1
peut être vide, mais list2
peut avoir des disques. Comment dois-je les fusionner?
Vous devez vous connecter pour publier un commentaire.
Vous n'êtes pas à l'aide de la valeur de retour - comme tous les autres opérateurs LINQ, la méthode ne change pas le existant de la séquence, il renvoie une nouveau séquence. Donc, essayez ceci:
ou
Union
est une opération de l'ensemble - il retourne des valeurs distinctes.Concat
renvoie simplement les éléments de la première séquence suivie par les éléments de la deuxième séquence, la séquence résultante peut inclure les éléments en double.Vous pouvez penser
Union
commeConcat
suivie parDistinct
.IOrderedQueryable
s'étendIQueryable
, par exemple. Dans LINQ to Objects, l'ordre est conservé avec ces opérations, mais je doute que c'est la garantie pour les out-of-process fournisseurs de requêtes.IQueryable<T>
qui m'a beaucoup aidé dans mon cas.Même
ne fonctionne pas?
Et assurez-vous que les listes sont vides, pas null:
Essayez aussi:
Une autre option que j'ai trouvé:
Déclarer:
IEnumerable<int> usersIds = new int[0];
Par exemple à l'intérieur d'une boucle:
Maintenant usersIds et id(distincte) contient l'id de tous les utilisateurs comme IEnumerable -int-