A collection is a set of related data that may not necessarily belong to the same data type. It can be set or modified dynamically at run-time. Accessing collections is similar to accessing arrays, where elements are accessed by their index numbers. However, there are differences between arrays and collections in C#.