C Sharp Programming/Data structures

There are various ways of grouping sets of data together in C#.

Enumerations
An enumeration is a data type that enumerates a set of items by assigning to each of them an identifier (a name), while exposing an underlying base type for ordering the elements of the enumeration. The underlying type is by default, but can be any one of the integral types except for.

Enumerations are declared as follows:

The elements in the above enumeration are then available as constants:

If no explicit values are assigned to the enumerated items as the example above, the first element has the value 0, and the successive values are assigned to each subsequent element. However, specific values from the underlying integral type can be assigned to any of the enumerated elements (note that the variable must be type cast in order to access the base type):

The underlying values of enumerated elements may go unused when the purpose of an enumeration is simply to group a set of items together, e.g., to represent a nation, state, or geographical territory in a more meaningful way than an integer could. Rather than define a group of logically related constants, it is often more readable to use an enumeration.

It may be desirable to create an enumeration with a base type other than. To do so, specify any integral type besides as with base class extension syntax after the name of the enumeration, as follows:

The enumeration type is also helpful, if you need to output the value. By calling the method on the enumeration, will output the enumerations name (e.g.  will output "Hearts").

Structs
Structures (keyword ) are light-weight objects. They are mostly used when only a data container is required for a collection of value type variables. Structs are similar to classes in that they can have constructors, methods, and even implement interfaces, but there are important differences.


 * Structs are value types while classes are reference types, which means they behave differently when passed into methods as parameters.
 * Structs cannot support inheritance. While structs may appear to be limited with their use, they require less memory and can be less expensive, if used in the proper way.
 * Structs always have a default constructor, even if you don't want one. Classes allow you to hide the constructor away by using the "private" modifier, whereas structures must have one.

A can, for example, be declared like this:

The struct can then be used like this:

It is also possible to provide constructors to s to make it easier to initialize them:

There is also an alternative syntax for initializing structs:

Structs are really only used for performance reasons or, if you intend to reference it by value. Structs work best when holding a total equal to or less than 16 bytes of data. If in doubt, use classes.

Arrays
Arrays represent a set of items all belonging to the same type. The declaration itself may use a variable or a constant to define the length of the array. However, an array has a set length and it cannot be changed after declaration.