Usando | con strings

15/05/2008 - 15:51 por jesusR | Informe spam
Saludos.

Requiero hacer algo como esto:
if (codigo=="0" | codigo=="5" | codigo =="6" | codigo =="7" ){
//ejecutar acciones
}

en donde los puntitos (...) indica que son muchas
comparaciones (alrededor de 17)

trate algo asi:

switch (Codigo){
case "0" | "5" | "6" | "7"
//ejecutar instrucciones
break;
}
pero el compilador me genera este error:
"El operador '|' no se puede aplicar a operandos del tipo
'string' y 'string' "


No existe alguna manera paracida a SQL en donde use algo como:

if codigo in ("1", "2", "3", )

Tengo poco tiempo con C# y no logro conseguir las instrucciones
adecuadas

Preguntas similare

Leer las respuestas

#1 RFOG
15/05/2008 - 16:04 | Informe spam
Encadenar los cases en C# es así:

switch(codigo)
{
case "0":
case "1":
case "2":
bla
}

Ahora bien, una opción más rápida es meter las cadenas en un array y
comprobarlas en un bucle for.

"jesusR" escribió en el mensaje de noticias
news:
Saludos.

Requiero hacer algo como esto:
if (codigo=="0" | codigo=="5" | codigo =="6" | codigo =="7" ){
//ejecutar acciones
}

en donde los puntitos (...) indica que son muchas
comparaciones (alrededor de 17)

trate algo asi:

switch (Codigo){
case "0" | "5" | "6" | "7"
//ejecutar instrucciones
break;
}
pero el compilador me genera este error:
"El operador '|' no se puede aplicar a operandos del tipo
'string' y 'string' "


No existe alguna manera paracida a SQL en donde use algo como:

if codigo in ("1", "2", "3", )

Tengo poco tiempo con C# y no logro conseguir las instrucciones
adecuadas




Microsoft Visual C++ MVP
==Mi blog sobre programación: http://geeks.ms/blogs/rfog
Momentos Leves: http://momentosleves.blogspot.com/
Cosas mías: http://rfog.blogsome.com/
Libros, ciencia ficción y programación
No desear la mujer de tu prójimo. ¡Ni a tu prójimo!
Respuesta Responder a este mensaje
#2 srellock
15/05/2008 - 16:14 | Informe spam
A simple vista parece que el compilador no sabe interpretar las prioridades,
prueba de esta forma.

if ((codigo=="0") | (codigo=="5") | (codigo =="6") | (codigo =="7")
)

Marcando prioridades con los parentesis.

En alguna ocasion he tenido que hacer algo tal que asi: (Y no entiendo muy
bien por que)

if (((codigo=="0")==true) | ((codigo=="5")==true) | ((codigo =="6")==true) |
((codigo =="7")==true) )




"jesusR" escribió en el mensaje
news:
Saludos.

Requiero hacer algo como esto:
if (codigo=="0" | codigo=="5" | codigo =="6" | codigo =="7" ){
//ejecutar acciones
}

en donde los puntitos (...) indica que son muchas
comparaciones (alrededor de 17)

trate algo asi:

switch (Codigo){
case "0" | "5" | "6" | "7"
//ejecutar instrucciones
break;
}
pero el compilador me genera este error:
"El operador '|' no se puede aplicar a operandos del tipo
'string' y 'string' "


No existe alguna manera paracida a SQL en donde use algo como:

if codigo in ("1", "2", "3", )

Tengo poco tiempo con C# y no logro conseguir las instrucciones
adecuadas

Respuesta Responder a este mensaje
#3 srellock
15/05/2008 - 16:23 | Informe spam
Tambien puedes concatenar y buscar un substring, que seguramente sera una
forma mas limpia de hacer lo que quieres.

string sValues = "1;2;"11;12;19;27;";

if ( sValues.IndexOf( "19;") >= 0)


Y seguro que hay muchas mas forma de hacerlo (y mejores).


"jesusR" escribió en el mensaje
news:
Saludos.

Requiero hacer algo como esto:
if (codigo=="0" | codigo=="5" | codigo =="6" | codigo =="7" ){
//ejecutar acciones
}

en donde los puntitos (...) indica que son muchas
comparaciones (alrededor de 17)

trate algo asi:

switch (Codigo){
case "0" | "5" | "6" | "7"
//ejecutar instrucciones
break;
}
pero el compilador me genera este error:
"El operador '|' no se puede aplicar a operandos del tipo
'string' y 'string' "


No existe alguna manera paracida a SQL en donde use algo como:

if codigo in ("1", "2", "3", )

Tengo poco tiempo con C# y no logro conseguir las instrucciones
adecuadas

Respuesta Responder a este mensaje
#4 Angel g.
15/05/2008 - 16:24 | Informe spam
Hola,

No deberias usar || en vez de | ???


"jesusR" escribió en el mensaje
news:
Saludos.

Requiero hacer algo como esto:
if (codigo=="0" | codigo=="5" | codigo =="6" | codigo =="7" ){
//ejecutar acciones
}

en donde los puntitos (...) indica que son muchas
comparaciones (alrededor de 17)

trate algo asi:

switch (Codigo){
case "0" | "5" | "6" | "7"
//ejecutar instrucciones
break;
}
pero el compilador me genera este error:
"El operador '|' no se puede aplicar a operandos del tipo
'string' y 'string' "


No existe alguna manera paracida a SQL en donde use algo como:

if codigo in ("1", "2", "3", )

Tengo poco tiempo con C# y no logro conseguir las instrucciones
adecuadas


Respuesta Responder a este mensaje
#5 jesusR
15/05/2008 - 16:30 | Informe spam
Gracias a todos
Buscaba especificamente esta respuesta, a mi parecer el codigo
quedaria mas limpio.
On May 15, 4:23 pm, "srellock" wrote:
Tambien puedes concatenar y buscar un substring, que seguramente sera una
forma mas limpia de hacer lo que quieres.

string sValues = "1;2;"11;12;19;27;";

if ( sValues.IndexOf( "19;") >= 0)

Y seguro que hay muchas mas forma de hacerlo (y mejores).

"jesusR" escribió en el mensajenews:



> Saludos.

> Requiero hacer algo como esto:
> if (codigo=="0" | codigo=="5" | codigo =="6" | codigo =="7" ){
>                //ejecutar acciones
> }

> en donde los puntitos (...) indica que son muchas
> comparaciones (alrededor de 17)

> trate algo asi:

> switch (Codigo){
>                case "0" | "5" | "6" | "7"
>                        //ejecutar instrucciones
>                         break;
> }
> pero el compilador me genera este error:
>       "El operador '|' no se puede aplicar a operandos del tipo
> 'string' y 'string' "

> No existe alguna manera paracida a SQL en donde use algo como:

> if codigo in ("1", "2", "3", )

> Tengo poco tiempo con C# y no logro conseguir las instrucciones
> adecuadas- Hide quoted text -

- Show quoted text -
Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida