public Class Users { string UserName, List<UserDesktop> userDesktop } public class UserDesktop { int ID, string DesktopName, string type -- here Type value is A, B; }Aquí tengo que encontrar el recuento de usuarios que tienen asignado el escritorio de la variable Usuarios de tipo A que contiene todos los datos.
List<Users> finalUsers = users.Count(s=>s.userDesktop.where(x=>x.type == "A"))Por favor, hágamelo saber la forma correcta de hacerlo.
Es posible que desee utilizar SelectMany para aplanar la lista y luego contarla:
int numberOfUsersWithDesktopOfTypeA = users.SelectMany(u => u.userDesktop) .Count(ud => ud.type == "A");Si desea la lista de usuarios que tienen un escritorio A:
var usersWithDesktopA = Users.Where(u => u.Any(ud => ud.type == "A")); var numberOfUsersWithDesktopA = usersWithDesktopA.Count();Para consultar a los usuarios que tienen UserDesktop de tipo 'A':
List<Users> hasDesktopAUsers = users.Where(u => u.userDesktop.Any(ud => ud.type == "A")) .ToList();A continuación, puede obtener el número de cuentas del resultado anterior como:
int numberOfDesktopAUsers = hasDesktopAUsers.Count;Se recomienda tener una convención de nomenclatura adecuada para manejar términos simples y plurales para evitar confusiones. Por ejemplo:
public class User { public string UserName { get; set; } public List<UserDesktop> UserDesktops { get; set; } } public class UserDesktop { public int ID { get; set; } public string DesktopName { get; set; } public string Type { get; set; } } De lo anterior, debe nombrar como User , ya que es un objeto User , mientras que UserDesktops con 's', ya que es un conjunto de colección.
Solución final:
List<User> hasDesktopAUsers = users.Where(u => u.UserDesktops.Any(ud => ud.Type == "A")) .ToList(); int numberOfDesktopAUsers = hasDesktopAUsers.Count;