c# - for - Usando más de una condición en linq''s donde método
if con dos condiciones excel (7)
¿Qué representaría "y"?
Puedes usar una condición estándar &&. No hay necesidad de una "y":
codebase.Methods.Where(x => x.Body.Scopes.Count > 5 && x.Body.SomethingElse < 14);
Tengo una línea de código usando donde:
codebase.Methods.Where(x => x.Body.Scopes.Count > 5);
¿Cómo puedo insertar más de una condición? Entonces puedo decir x => predicate && y => predicate
?
Gracias
En tu ejemplo, ¿de dónde vienes? El método Where
toma un lambda con un único parámetro de entrada, que representa una instancia única de la secuencia con la que está operando.
Por supuesto, puedes tener múltiples condiciones contra x
:
Where(x => x.Foo > 5 && x.Bar < 3)
Me gusta esto..
codebase.Methods.Where(x => x.Body.Scopes.Count > 5 && x.Body.Scopes.Count < 10);
No lo entiendo ¿Qué no puedes hacer?
codebase.Methods.Where(x => x.Head.IsHairy && x.Body != null && x.Body.Scopes.Count > 5);
Puede rodar sus condiciones separadas en un solo predicado si lo desea:
codebase.Methods.Where(x => (x.Body.Scopes.Count > 5) && (x.Foo == "test"));
O puede usar una llamada Where
separada para cada condición:
codebase.Methods.Where(x => x.Body.Scopes.Count > 5)
.Where(x => x.Foo == "test");
no, no puede definir 2 delegados en el mismo lugar pero puede construir uno detrás del otro o poner ambos en las mismas condiciones como esta
var result = codebase.Methods.Where(x => x.Body.Scopes.Count > 5 && x.Body.Scopes.name == "" );
or
var result = codebase.Methods.Where(x => x.Body.Scopes.Count > 5 )
.where( y=> y.Body.Scopes.name == '''' );
or
var result = codebase.Methods.Where(x => x.Body.Scopes.Count > 5 )
.Union( codebase.Methods.Where(y => y.Body.Scopes.name == '''' ) );
codebase.Methods.Where(x => x.Body.Scopes.Count > 5).Where(x => x.Body.Scopes.TypeName == "Scopes").Where(x => x.Body.Scopes.Level == LEVEL_HIGH);