mvc inside example ejemplos custom c# iqueryable

c# - inside - Cómo fusionar dos listas IQueryable



linq custom provider (3)

Incluso

var result = Enumerable.Concat(list1, list2);

no funciona?

Y asegúrese de que las listas estén vacías, no nulas:

var result = Enumerable.Concat( list1 ?? Enumerable.Empty<MediaType>() list2 ?? Enumerable.Empty<MediaType>());

Intenta también:

var result = Enumerable.Concat( list1.AsEnumerable(), list2.AsEnumerable());

Quiero fusionar los registros de dos listas IQueryable en C #. lo intento

IQueryable<MediaType> list1 = values; IQueryable<MediaType> list2 = values1; obj.Concat(obj1);

y

IQueryable<MediaType> list1 = values; IQueryable<MediaType> list2 = values1; obj.Union(obj1);

pero si list1 está vacío, la lista resultante también está vacía. En mi caso, cualquiera de las list1 puede estar vacía, pero la lista 2 puede tener registros. ¿Cómo debo unirlos?


No está utilizando el valor de retorno, al igual que todos los demás operadores de LINQ, el método no cambia la secuencia existente , devuelve una nueva secuencia. Entonces intente esto:

var list3 = list1.Concat(list2);

o

var list4 = list1.Union(list2);

Union es una operación establecida: devuelve valores distintos.

Concat simplemente devuelve los artículos de la primera secuencia seguidos por los artículos de la segunda secuencia; la secuencia resultante puede incluir elementos duplicados.

Puedes pensar en Union como Concat seguido de Distinct .


Otra opción que encontré:
Declarar:
IEnumerable<int> usersIds = new int[0];
Por ejemplo, dentro de un bucle:

foreach (var id in Ids) { IQueryable<int> _usersIds = bl.GetUsers(id).Select(x => x.UserID); usersIds = usersIds.Concat(_usersIds); } var ids = usersIds.Distinct();

Ahora usersIds e ids (como distinct) contienen la identificación de todos los usuarios como IEnumerable -int-