| Data Structure | Description | Key Features | Use Cases | Performance |
| Array | Fixed-size, contiguous memory allocation. Used for storing elements of the same type. | – Constant-time access (O(1)) for indexed elements.- Cannot resize once created. | – Low-level data storage.- Known fixed size. | – Access: O(1)- Search: O(n)- Insertion/Deletion: Not supported efficiently |
| List (List<T>) | A dynamic array that resizes automatically when elements are added/removed. | – Dynamically resizable.- Maintains order of elements.- Supports LINQ queries. | – Storing ordered data.- Frequent additions/removals. | – Access: O(1)- Search: O(n)- Insertion/Deletion: O(n) (due to resizing or shifting elements) |
| Dictionary (HashMap) | A collection of key-value pairs implemented as a hash table. | – Fast lookups with unique keys.- Unordered.- Keys must be unique. | – Storing mappings (e.g., ID → Object). | – Access/Search: O(1) (average)- Insertion/Deletion: O(1) (average) |
| HashSet | A collection of unique elements, implemented as a hash table. | – Fast lookups.- Only stores unique elements.- Unordered. | – Checking membership.- Removing duplicates. | – Add/Search: O(1) (average)- Insertion/Deletion: O(1) |
| Queue | A FIFO (First-In-First-Out) collection. | – Enqueue (add to end).- Dequeue (remove from front).- Used for sequential processing. | – Task scheduling.- Order-sensitive tasks. | – Enqueue/Dequeue: O(1) |
| Stack | A LIFO (Last-In-First-Out) collection. | – Push (add to top).- Pop (remove from top).- Peek (view top element). | – Undo operations.- Depth-first search. | – Push/Pop: O(1) |
| SortedList | A sorted collection of key-value pairs (sorted by key). | – Maintains keys in sorted order.- Slower than Dictionary for large datasets. | – When sorted keys are important. | – Search: O(log n)- Insertion/Deletion: O(n) |
| LinkedList | A doubly linked list where each element points to the next and previous elements. | – Efficient insertion/deletion at any position.- No random access (sequential only). | – Frequent insertions/deletions.- Traversing data. | – Access/Search: O(n)- Insertion/Deletion: O(1) (if the node reference is known) |