requeridos republica que por para operaciones objetivo minimos las inversiones internacionales informacion importaciones formulario declaración declaracion datos concepto codigos cambio bienes banco c# switch-statement wildcard

c# - republica - informacion de datos minimos requeridos para las operaciones de cambio por importaciones de bienes



¿Cómo puedo usar comodines en una declaración de cambio? (4)

Tengo una declaración de cambio que usa una cadena de 3 letras. Para muchos casos (pero no todos) solo quiero preocuparme por las primeras 2 letras.

Ejemplo, quiero que todos los códigos que comiencen con "FF" se manejen de la misma manera:

switch(code) { case "FF(?)": // Handle it break; default: break; }

¿Qué puedo hacer aquí? ¿Puedo utilizar un comodín? ¿Debo considerar cada código FF?

Por razones obvias, no quiero tener un código como este, que pueda crecer mucho:

case "FFA": case "FFB": case "FFD": // Handle it


Haga sus primeros 2 caracteres en el switch , no en el case .

Use la caja por default para luego volver a las cajas de tres letras. No es el más limpio, pero funcionaría. Algunas veces, las declaraciones son el camino a seguir si los interruptores no se cortan.

switch(code.Substring(0, 2)) { case "FF": ... default: switch(code) { case "ABC": .... } }


La instrucción Switch en C # no es compatible con esto. En su lugar, necesitaría usar sentencias if / else:

if (code.StartsWith("FF")) { // Handle it } else if (code == "HFD") // etc { // Handle it } else { // default case }


Use if then else para este tipo de comparaciones. Reserve sus declaraciones de case y case para casos que son fácilmente identificables como valores discretos.


solo use un operador ternario en la declaración del interruptor

switch (code.StartsWith("FF")? code.substring(0,2): code) { case "FF": case "FAS": case "FAY" // etc. }

para múltiplos, haz esto:

switch (new[] {"FF", "GG", "HH", "JJ"}.Contains(code.substring(0,2))? code.substring(0,2): code) { case "FF": case "GG": case "HH": case "JJ": case "FAS": case "FAY" // etc. }