Permalink
Cannot retrieve contributors at this time
Fetching contributors…
| // <Snippet1> | |
| using System; | |
| using System.Collections.Generic; | |
| // A traditional enumeration of some root vegetables. | |
| public enum SomeRootVegetables | |
| { | |
| HorseRadish, | |
| Radish, | |
| Turnip | |
| } | |
| // A bit field or flag enumeration of harvesting seasons. | |
| [Flags] | |
| public enum Seasons | |
| { | |
| None = 0, | |
| Summer = 1, | |
| Autumn = 2, | |
| Winter = 4, | |
| Spring = 8, | |
| All = Summer | Autumn | Winter | Spring | |
| } | |
| public class Example | |
| { | |
| public static void Main() | |
| { | |
| // Hash table of when vegetables are available. | |
| Dictionary<SomeRootVegetables, Seasons> AvailableIn = new Dictionary<SomeRootVegetables, Seasons>(); | |
| AvailableIn[SomeRootVegetables.HorseRadish] = Seasons.All; | |
| AvailableIn[SomeRootVegetables.Radish] = Seasons.Spring; | |
| AvailableIn[SomeRootVegetables.Turnip] = Seasons.Spring | | |
| Seasons.Autumn; | |
| // Array of the seasons, using the enumeration. | |
| Seasons[] theSeasons = new Seasons[] { Seasons.Summer, Seasons.Autumn, | |
| Seasons.Winter, Seasons.Spring }; | |
| // Print information of what vegetables are available each season. | |
| foreach (Seasons season in theSeasons) | |
| { | |
| Console.Write(String.Format( | |
| "The following root vegetables are harvested in {0}:\n", | |
| season.ToString("G"))); | |
| foreach (KeyValuePair<SomeRootVegetables, Seasons> item in AvailableIn) | |
| { | |
| // A bitwise comparison. | |
| if (((Seasons)item.Value & season) > 0) | |
| Console.Write(String.Format(" {0:G}\n", | |
| (SomeRootVegetables)item.Key)); | |
| } | |
| } | |
| } | |
| } | |
| // The example displays the following output: | |
| // The following root vegetables are harvested in Summer: | |
| // HorseRadish | |
| // The following root vegetables are harvested in Autumn: | |
| // Turnip | |
| // HorseRadish | |
| // The following root vegetables are harvested in Winter: | |
| // HorseRadish | |
| // The following root vegetables are harvested in Spring: | |
| // Turnip | |
| // Radish | |
| // HorseRadish | |
| // </Snippet1> |