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-