Master technical and career interviews with structured answers—short definition, real examples, pitfalls, and how to answer in 60–90 seconds.
Short answer: Method Purpose Add() Adds one item AddRange () Adds multiple items (collection) Example: list.Add(1); // One item list.AddRange(new[] { 2, 3, 4 }); // Multiple Example code Method Purpose Add() Adds one ite…
Short answer: These interfaces provide read-only access to collections: IReadOnlyCollection<T> provides Count and enumeration. IReadOnlyList<T> provides index-based access without modification. Example code I…
Short answer: dd()? Insert(index, item) adds an item at a specific index. Add(item) adds to the end of the list. list.Insert(0, 99); // Add at beginning list.Add(100); // Add at end dd()? Insert(index, item) adds an item…
Short answer: Method Purpose Return Value Add(item) Adds item if not already present true if added, false if duplicate Contains(it em) Checks if item exists in the set true if found, false otherwise Real-world example (S…
Short answer: Use the Count property. if (stack.Count == 0) Example code { Console.WriteLine("Stack is empty"); } Unlike some languages, C# stacks do not provide an IsEmpty property. Real-world example (ShopNes…
Short answer: Use a foreach loop. Iteration does not modify the queue. Example: foreach (var order in orders) Example code { Console.WriteLine(order); } You can also use .ToArray() if needed: string[] items = orders.ToAr…
Short answer: dictionary.Keys – returns a collection of all keys dictionary.Values – returns a collection of all values Example: foreach (var key in dictionary.Keys) Console.WriteLine(key); foreach (var value in dictiona…
Short answer: Insert(index, item) adds an item at a specific index. Add(item) adds to the end of the list. Example: list.Insert(0, 99); // Add at beginning list.Add(100); // Add at end Example code Insert(index, item) ad…
Short answer: Feature Non-Generic Generic Type Safety No Yes Performanc Slower (boxing/unboxing) Faster Casting Required Not required Syntax Less readable Clean and type-specific Examples: // Non-generic ArrayList arr =…
Short answer: Use a foreach loop; the iteration order is not guaranteed. foreach (var item in uniqueNumbers) { Console.WriteLine(item); } 📘 C# LinkedList<T> – Interview Questions & Answers Example code Use a f…
Short answer: Use the Clear() method to remove all elements. stack.Clear(); After this, Count becomes 0, and the internal array is reset. Example code Use the Clear() method to remove all elements. stack.Clear(); After t…
Short answer: Again, use the Peek() method: var front = queue.Peek(); Difference from Dequeue(): Peek() returns the front element without removing it. Dequeue() returns and removes the front element. 📘 C# Stack<T>…
Short answer: Using Add() will throw a System.ArgumentException Using the indexer (dictionary[key] = value) will overwrite the existing value Example: dictionary.Add("John", 25); Example code dictionary.Add(&qu…
Short answer: Use the Sort() method or provide a custom comparer. Example: list.Sort(); // Default sort (ascending) list.Sort((a, b) => b.CompareTo(a)); // Descending Example code Use the Sort() method or provide a cu…
Short answer: Feature IEnumerable <T> ICollection<T> Read-only Yes No Modification Not supported Supports Add, Remove, Clear Count property No Yes (Count) Example code IEnumerable<string> names = new Li…
Short answer: Use a foreach loop, which iterates from top to bottom (LIFO order). Example: foreach (var item in stack) Example code { Console.WriteLine(item); } This does not modify the stack — it's read-only iteration.…
Short answer: Use a foreach loop with KeyValuePair<TKey, TValue>: foreach (KeyValuePair<string, int> pair in dictionary) Example code { Console.WriteLine($"Key: {pair.Key}, Value: {pair.Value}"); }…
Short answer: Use the Reverse() method. Example: list.Reverse(); Use case: Reversing order of recent messages or results. Example code Use the Reverse() method. Example: list.Reverse(); Use case: Reversing order of recen…
Short answer: Feature List<T> ArrayList Generic Yes No Type Safety Compile-time Runtime (casting required) Performanc Better (no boxing) Slower for value types (boxing) Example: List<int> list = new List<i…
Short answer: Why or why not? For reference types, null keys are not allowed — adding one throws an ArgumentNullException. For value types, keys must be non-nullable (like int, Guid). This restriction ensures the integri…
Short answer: Use the Clear() method to remove all elements. list.Clear(); Use the Clear() method to remove all elements. Example code list.Clear(); Use the Clear() method to remove all elements. Example: list.Clear(); U…
Short answer: You can iterate using: Real-world example (ShopNest) In ShopNest checkout, choose the collection by need: List for ordered cart lines, Dictionary for fast SKU lookup, HashSet for unique tags. Say this in th…
Short answer: KeyValuePair<TKey, TValue> represents a single item in a dictionary — a key-value pair. Used in: Iteration LINQ queries Return values from dictionary enumerators Example: foreach (KeyValuePair<stri…
Short answer: Method Returns Find() First match FindAll () All matches in a new list Example: var firstEven = list.Find(x => x % 2 == 0); var allEvens = list.FindAll(x => x % 2 == 0); Example code Method Returns Fi…
Short answer: Use the Clear() method to remove all key-value pairs. dictionary.Clear(); This resets the dictionary to an empty state. 📘 C# Queue<T> – Interview Questions & Answers Real-world example (ShopNest)…
C# Collections C# Programming Tutorial · Collections
Short answer: Method Purpose Add() Adds one item AddRange () Adds multiple items (collection) Example: list.Add(1); // One item list.AddRange(new[] { 2, 3, 4 }); // Multiple
Method Purpose Add() Adds one item AddRange () Adds multiple items (collection) Example: list.Add(1); // One item
list.AddRange(new[] { 2, 3, 4 }); // Multiple
In ShopNest, an order page loads products with List<Product> so you can Add items to the cart and access them by index. Use IEnumerable<T> when you only need to loop (for example, printing invoice lines).
C# Collections C# Programming Tutorial · Collections
Short answer: These interfaces provide read-only access to collections: IReadOnlyCollection<T> provides Count and enumeration. IReadOnlyList<T> provides index-based access without modification.
IReadOnlyList<int> ids = new List<int> { 1, 2, 3 }; Console.WriteLine(ids[0]); // Access element // ids[0] = 10; // Compile-time error – read-only Real-world use case: Useful in APIs where you want to expose collection data but prevent consumers from modifying it—e.g., returning a list of supported currencies from a service.
In ShopNest, an order page loads products with List<Product> so you can Add items to the cart and access them by index. Use IEnumerable<T> when you only need to loop (for example, printing invoice lines).
C# Collections C# Programming Tutorial · Collections
Short answer: dd()? Insert(index, item) adds an item at a specific index. Add(item) adds to the end of the list. list.Insert(0, 99); // Add at beginning list.Add(100); // Add at end dd()? Insert(index, item) adds an item at a specific index. Add(item) adds to the end of the list.
list.Insert(0, 99); // Add at beginning… list.Add(100); // Add at end dd()? Insert(index, item) adds an item at a specific index. Add(item) adds to the end of the list. Example: list.Insert(0, 99); // Add at beginning list.Add(100); // Add at end dd()? Insert(index, item) adds an item at a specific index. Add(item) adds to the end of the list. Example: list.Insert(0, 99); // Add at beginning… list.Add(100); // Add at end
In ShopNest, an order page loads products with List<Product> so you can Add items to the cart and access them by index. Use IEnumerable<T> when you only need to loop (for example, printing invoice lines).
C# Collections C# Programming Tutorial · Collections
Short answer: Method Purpose Return Value Add(item) Adds item if not already present true if added, false if duplicate Contains(it em) Checks if item exists in the set true if found, false otherwise
When applying a coupon, ShopNest keeps used coupon codes in a HashSet<string> so “already used?” checks stay fast and unique.
C# Collections C# Programming Tutorial · Collections
Short answer: Use the Count property. if (stack.Count == 0)
{ Console.WriteLine("Stack is empty"); } Unlike some languages, C# stacks do not provide an IsEmpty property.
ShopNest uses a Queue<Order> for “orders waiting for payment confirmation,” and a Stack<Uri> for back-navigation in the admin UI.
C# Collections C# Programming Tutorial · Collections
Short answer: Use a foreach loop. Iteration does not modify the queue. Example: foreach (var order in orders)
{ Console.WriteLine(order); } You can also use .ToArray() if needed: string[] items = orders.ToArray();
ShopNest uses a Queue<Order> for “orders waiting for payment confirmation,” and a Stack<Uri> for back-navigation in the admin UI.
C# Collections C# Programming Tutorial · Collections
Short answer: dictionary.Keys – returns a collection of all keys dictionary.Values – returns a collection of all values Example: foreach (var key in dictionary.Keys) Console.WriteLine(key); foreach (var value in dictionary.Values) Console.WriteLine(value);
dictionary.Keys – returns a collection of all keys dictionary.Values – returns a collection of all values Example: foreach (var key in dictionary.Keys) Console.WriteLine(key); foreach (var value in dictionary.Values) Console.WriteLine(value);
ShopNest caches product prices in a Dictionary<string, decimal> keyed by SKU so checkout can look up a price in O(1) instead of scanning a list.
C# Collections C# Programming Tutorial · Collections
Short answer: Insert(index, item) adds an item at a specific index. Add(item) adds to the end of the list. Example: list.Insert(0, 99); // Add at beginning list.Add(100); // Add at end
Insert(index, item) adds an item at a specific index. Add(item) adds to the end of the list. Example: list.Insert(0, 99); // Add at beginning
list.Add(100); // Add at end
In ShopNest, an order page loads products with List<Product> so you can Add items to the cart and access them by index. Use IEnumerable<T> when you only need to loop (for example, printing invoice lines).
C# Collections C# Programming Tutorial · Collections
Short answer: Feature Non-Generic Generic Type Safety No Yes Performanc Slower (boxing/unboxing) Faster Casting Required Not required Syntax Less readable Clean and type-specific Examples: // Non-generic ArrayList arr = new ArrayList(); arr.Add(1); arr.Add("text"); // Allowed, but risky // Generic List<int> list = new List<int>(); dict["id"] = 101; Real-world use case: Generic collections are recommended for new development due…
to safety and performance. Non-generic collections are often found in older legacy systems.
list.Add(1); // list.Add("text"); // Compile-time error // Hashtable vs Dictionary Hashtable ht = new Hashtable();
ht["id"] = 101;
Dictionary<string, int> dict = new Dictionary<string, int>();
C# Collections C# Programming Tutorial · Collections
Short answer: Use a foreach loop; the iteration order is not guaranteed. foreach (var item in uniqueNumbers) { Console.WriteLine(item); } 📘 C# LinkedList<T> – Interview Questions & Answers
Use a foreach loop; the iteration order is not guaranteed. foreach (var item in uniqueNumbers)
{ Console.WriteLine(item); } 📘 C# LinkedList<T> – Interview Questions & Answers
When applying a coupon, ShopNest keeps used coupon codes in a HashSet<string> so “already used?” checks stay fast and unique.
C# Collections C# Programming Tutorial · Collections
Short answer: Use the Clear() method to remove all elements. stack.Clear(); After this, Count becomes 0, and the internal array is reset.
Use the Clear() method to remove all elements. stack.Clear(); After this, Count becomes 0, and the internal array is reset.
ShopNest uses a Queue<Order> for “orders waiting for payment confirmation,” and a Stack<Uri> for back-navigation in the admin UI.
C# Collections C# Programming Tutorial · Collections
Short answer: Again, use the Peek() method: var front = queue.Peek(); Difference from Dequeue(): Peek() returns the front element without removing it. Dequeue() returns and removes the front element. 📘 C# Stack<T> – Interview Questions & Answers
ShopNest uses a Queue<Order> for “orders waiting for payment confirmation,” and a Stack<Uri> for back-navigation in the admin UI.
C# Collections C# Programming Tutorial · Collections
Short answer: Using Add() will throw a System.ArgumentException Using the indexer (dictionary[key] = value) will overwrite the existing value Example: dictionary.Add("John", 25);
dictionary.Add("John", 30); // Exception
dictionary["John"] = 30; // Overwrites the value safely
ShopNest caches product prices in a Dictionary<string, decimal> keyed by SKU so checkout can look up a price in O(1) instead of scanning a list.
C# Collections C# Programming Tutorial · Collections
Short answer: Use the Sort() method or provide a custom comparer. Example: list.Sort(); // Default sort (ascending) list.Sort((a, b) => b.CompareTo(a)); // Descending
Use the Sort() method or provide a custom comparer. Example: list.Sort(); // Default sort (ascending)
list.Sort((a, b) => b.CompareTo(a)); // Descending
In ShopNest, an order page loads products with List<Product> so you can Add items to the cart and access them by index. Use IEnumerable<T> when you only need to loop (for example, printing invoice lines).
C# Collections C# Programming Tutorial · Collections
Short answer: Feature IEnumerable <T> ICollection<T> Read-only Yes No Modification Not supported Supports Add, Remove, Clear Count property No Yes (Count)
IEnumerable<string> names = new List<string> { "A", "B" }; // names.Add("C"); // Error ICollection<string> nameCollection = new List<string> { "A", "B" }; nameCollection.Add("C"); // Allowed Real-world scenario: Use IEnumerable<T> for read-only, query-focused tasks like LINQ. Use ICollection<T> when managing and modifying the collection.
In ShopNest, an order page loads products with List<Product> so you can Add items to the cart and access them by index. Use IEnumerable<T> when you only need to loop (for example, printing invoice lines).
C# Collections C# Programming Tutorial · Collections
Short answer: Use a foreach loop, which iterates from top to bottom (LIFO order). Example: foreach (var item in stack)
{ Console.WriteLine(item); } This does not modify the stack — it's read-only iteration. 📘 C# HashSet<T> – Interview Questions & Answers
ShopNest uses a Queue<Order> for “orders waiting for payment confirmation,” and a Stack<Uri> for back-navigation in the admin UI.
C# Collections C# Programming Tutorial · Collections
Short answer: Use a foreach loop with KeyValuePair<TKey, TValue>: foreach (KeyValuePair<string, int> pair in dictionary)
{ Console.WriteLine($"Key: {pair.Key}, Value: {pair.Value}"); } Or use deconstruction (C# 7+): foreach (var (key, value) in dictionary)
{
Console.WriteLine($"{key} = {value}");
}
ShopNest caches product prices in a Dictionary<string, decimal> keyed by SKU so checkout can look up a price in O(1) instead of scanning a list.
C# Collections C# Programming Tutorial · Collections
Short answer: Use the Reverse() method. Example: list.Reverse(); Use case: Reversing order of recent messages or results.
Use the Reverse() method. Example: list.Reverse(); Use case: Reversing order of recent messages or results.
C# Collections C# Programming Tutorial · Collections
Short answer: Feature List<T> ArrayList Generic Yes No Type Safety Compile-time Runtime (casting required) Performanc Better (no boxing) Slower for value types (boxing) Example: List<int> list = new List<int>(); ArrayList arrayList = new ArrayList(); arrayList.Add(10); int num = (int)arrayList[0]; // Casting required Best Practice: Always prefer List<T> in new code. Use ArrayList only when working with legacy systems.
list.Add(10); // Type-safe
In ShopNest, an order page loads products with List<Product> so you can Add items to the cart and access them by index. Use IEnumerable<T> when you only need to loop (for example, printing invoice lines).
C# Collections C# Programming Tutorial · Collections
Short answer: Why or why not? For reference types, null keys are not allowed — adding one throws an ArgumentNullException. For value types, keys must be non-nullable (like int, Guid). This restriction ensures the integrity of hashing, which is used internally by the dictionary.
ShopNest caches product prices in a Dictionary<string, decimal> keyed by SKU so checkout can look up a price in O(1) instead of scanning a list.
C# Collections C# Programming Tutorial · Collections
Short answer: Use the Clear() method to remove all elements. list.Clear(); Use the Clear() method to remove all elements.
list.Clear(); Use the Clear() method to remove all elements. Example: list.Clear(); Use the Clear() method to remove all elements. Example: list.Clear();
In ShopNest, an order page loads products with List<Product> so you can Add items to the cart and access them by index. Use IEnumerable<T> when you only need to loop (for example, printing invoice lines).
C# Collections C# Programming Tutorial · Collections
Short answer: You can iterate using:
In ShopNest checkout, choose the collection by need: List for ordered cart lines, Dictionary for fast SKU lookup, HashSet for unique tags.
C# Collections C# Programming Tutorial · Collections
Short answer: KeyValuePair<TKey, TValue> represents a single item in a dictionary — a key-value pair. Used in: Iteration LINQ queries Return values from dictionary enumerators Example: foreach (KeyValuePair<string, int> entry in dictionary)
{ Console.WriteLine($"Key: {entry.Key}, Value: {entry.Value}"); }
ShopNest caches product prices in a Dictionary<string, decimal> keyed by SKU so checkout can look up a price in O(1) instead of scanning a list.
C# Collections C# Programming Tutorial · Collections
Short answer: Method Returns Find() First match FindAll () All matches in a new list Example: var firstEven = list.Find(x => x % 2 == 0); var allEvens = list.FindAll(x => x % 2 == 0);
Method Returns Find() First match FindAll () All matches in a new list Example: var firstEven = list.Find(x => x % 2 == 0);
var allEvens = list.FindAll(x => x % 2 == 0);
In ShopNest, an order page loads products with List<Product> so you can Add items to the cart and access them by index. Use IEnumerable<T> when you only need to loop (for example, printing invoice lines).
C# Collections C# Programming Tutorial · Collections
Short answer: Use the Clear() method to remove all key-value pairs. dictionary.Clear(); This resets the dictionary to an empty state. 📘 C# Queue<T> – Interview Questions & Answers
ShopNest caches product prices in a Dictionary<string, decimal> keyed by SKU so checkout can look up a price in O(1) instead of scanning a list.
Install Toolliyo like an app Free
Home-screen access to tutorials, coding practice & career tools — no app store needed.
On iPhone/iPad: tap Share then Add to Home Screen.