/// <summary> /// Sammelt die Namen der in <paramref name="imppType"/> gesetzten Flags in /// <paramref name="list"/>. <paramref name="list"/> wird von der Methode nicht /// geleert. /// </summary> /// <param name="imppType"><see cref="ImppTypes"/>-Objekt oder <c>null</c>.</param> /// <param name="list">Eine Liste zum Sammeln.</param> internal static void CollectValueStrings(ImppTypes?imppType, List <string> list) { Debug.Assert(list != null); if (!imppType.HasValue) { return; } ImppTypes value = imppType.Value & ImppTypesConverter.DEFINED_IMPP_TYPES_VALUES; for (int i = ImppTypesConverter.ImppTypesMinBit; i <= ImppTypesConverter.ImppTypesMaxBit; i++) { ImppTypes flag = (ImppTypes)(1 << i); if (value.HasFlag(flag)) { list.Add(flag.ToVcfString()); } } }
public static bool IsSet(this ImppTypes?value, ImppTypes flags) => (value & flags) == flags;
public static ImppTypes?Unset(this ImppTypes?value, ImppTypes flags) { value &= ~flags; return(value == (ImppTypes)0 ? null : value); }
public static ImppTypes?Set(this ImppTypes?value, ImppTypes flags) => value.HasValue ? (value.Value | flags) : flags;