He una List<BuildingStatus>
llamada buildingStatus
. Me gustaría comprobar si contiene un estado cuya carbón código (que devuelve GetCharCode()
) es igual a alguna variable, v.Status
.
¿Hay alguna forma de hacerlo, en la línea del código (sin compilación) a continuación?
buildingStatus.Contains(item => item.GetCharValue() == v.Status)
Contains()
método, y luego me doy cuenta de que se supone que es asíAny()
. +1El método de extensión Linq Cualquiera podría funcionar para usted ...
fuente
Así es como puede usar
Contains
para lograr lo que desea:buildingStatus.Select(item => item.GetCharValue()).Contains(v.Status)
esto devolverá un valor booleano.fuente
No estoy seguro de lo que estás buscando, pero este programa:
produce el resultado esperado:
Este programa compara una representación de cadena de la enumeración y produce la misma salida:
Creé este método de extensión para convertir un IEnumerable a otro, pero no estoy seguro de cuán eficiente es; puede simplemente crear una lista detrás de escena.
Luego puede cambiar la cláusula where a:
y omita crear el
List<string>
conConvertAll ()
al principio.fuente
Si lo entiendo correctamente, debe convertir el tipo (valor de carácter) que almacena en la lista de construcción al tipo (enumeración) que almacena en la lista de estado de construcción.
(Para cada estado en la lista de construcción // valor de carácter //, ¿existe el estado en la lista de estado de construcción // valor de enumeración //)
fuente
Building
la pregunta, esto ya estaba realmente roto .foreach(Enum value in Enum.GetValues(typeof(buildingStatus)))
Es una tontería.