Itération sur les valeurs d'une énumération avec des indicateurs
Question :
Lorsque vous travaillez avec un enum qui prend en charge les indicateurs, comment peut-on parcourir spécifiquement les valeurs individuelles à un seul bit définies dans une variable particulière ? Est-il possible d'éviter d'itérer sur l'ensemble de l'énumération à l'aide d'Enum.GetValues ?
Réponse :
Oui, il est possible de parcourir les valeurs d'indicateur individuelles dans une variable d'énumération sans avoir besoin d'énumérer l'intégralité de l'énumération et de vérifier si les valeurs sont définies. Ceci peut être réalisé en utilisant l'extrait de code suivant :
static IEnumerable<Enum> GetFlags(Enum input) { foreach (Enum value in Enum.GetValues(input.GetType())) if (input.HasFlag(value)) yield return value; }
Explication :
En utilisant cette approche, vous pouvez parcourir efficacement les valeurs d'indicateur individuelles de l'énumération. variable.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!