Home
Manage Your Code
Snippet: Enumerate Enum flags (C#)
Title: Enumerate Enum flags Language: C#
Description: produces a list of the selected flags in an enum that was built using [Flags] Views: 175
Author: Brandon Dimperio Date Added: 2/8/2010
Copy Code  
1    /// <summary>

2    /// Gets all combined items from an enum value.

3    /// </summary>

4    /// <typeparam name="T"></typeparam>

5    /// <param name="value">The value.</param>

6    /// <returns></returns>

7    public static IEnumerable<T> GetAllSelectedItems<T>(this Enum value)
8    {
9        int valueAsInt = Convert.ToInt32(value, CultureInfo.InvariantCulture);
10
11        foreach (object item in Enum.GetValues(typeof(T)))
12        {
13            int itemAsInt = Convert.ToInt32(item, CultureInfo.InvariantCulture);
14
15            if (itemAsInt == (valueAsInt & itemAsInt))
16            {
17                yield return (T)item;
18            }
19        }
20    }
21
Notes
Noted from: http://stackoverflow.com/questions/105372/c-how-to-enumerate-an-enum