variable usan usa tipos tipo significa que pero numericas declarar declaracion datos como clases clase alfanumericas c# variables contains

usan - variable de clase c#



Compruebe si una variable se encuentra en una lista de valores ad-hoc (7)

Esta respuesta se refiere a una posible versión futura de C # ;-) Si considera cambiar a Visual Basic, o si Microsoft finalmente decide presentar la sentencia Select Case en C #, se vería así:

Select Case X Case 1, 2, 3 ... End Select

¿Hay alguna forma más corta de escribir algo como esto?

if(x==1 || x==2 || x==3) // do something

Lo que estoy buscando es algo como esto:

if(x.in((1,2,3)) // do something


Estoy totalmente adivinando aquí, corrija el código si me equivoco:

(new int[]{1,2,3}).IndexOf(x)>-1


Puede crear un Dictionary<TKey, TValue> simple Dictionary<TKey, TValue> que se utilizará como una tabla de decisión para ese problema:

//Create your decision-table Dictionary Action actionToPerform1 = () => Console.WriteLine("The number is okay"); Action actionToPerform2 = () => Console.WriteLine("The number is not okay"); var decisionTable = new Dictionary<int, Action> { {1, actionToPerform1}, {2, actionToPerform1}, {3, actionToPerform1}, {4, actionToPerform2}, {5, actionToPerform2}, {6, actionToPerform2} }; //According to the given number, the right *Action* will be called. int theNumberToTest = 3; decisionTable[theNumberToTest](); //actionToPerform1 will be called in that case.

Una vez que haya inicializado su Dictionary , todo lo que queda por hacer es:

decisionTable[theNumberToTest]();


Puede lograr esto utilizando el método List.Contains :

if(new []{1, 2, 3}.Contains(x)) { //x is either 1 or 2 or 3 }


Si está en un IEnumerable<T> , usa esto:

if (enumerable.Any(n => n == value)) //whatever

De lo contrario, aquí hay un método de extensión corto:

public static bool In<T>(this T value, params T[] input) { return input.Any(n => object.Equals(n, value)); }

Póngalo en una static class , y puede usarlo así:

if (x.In(1,2,3)) //whatever


int x = 1; if((new List<int> {1, 2, 3}).Contains(x)) { }


public static bool In<T>(this T x, params T[] set) { return set.Contains(x); } ... if (x.In(1, 2, 3)) { ... }

Lectura obligatoria: métodos de extensión de MSDN