Master technical and career interviews with structured answers—short definition, real examples, pitfalls, and how to answer in 60–90 seconds.
Short answer: Use a foreach loop which iterates over the elements in sorted ascending order: foreach (var item in sortedSet) Example code { Console.WriteLine(item); } Real-world example (ShopNest) When applying a coupon,…
Short answer: You can use a foreach loop over KeyValuePair<TKey, TValue> elements, which iterates in sorted key order: foreach (var kvp in sortedList) { Console.WriteLine($"Key: {kvp.Key}, Value: {kvp.Value}&q…
Short answer: Adding or removing at the start or end: O(1) Adding or removing at an arbitrary position (if you already have the node reference): O(1) Searching for a node by value: O(n), because traversal is required Rea…
Short answer: No, HashSet<T> does not allow duplicates. Attempting to add a duplicate value will return false and not change the set. Example code bool added = uniqueNumbers.Add(2); // returns false because 2 alrea…
Short answer: Use the Peek() method. Example: int top = stack.Peek(); This is useful when you just want to inspect the top element without altering the stack. Example code Use the Peek() method. Example: int top = stack.…
Short answer: Use the Peek() method to view the front element without removing it. Example code Queue<string> tasks = new Queue<string>(); tasks.Enqueue("Task1"); string nextTask = tasks.Peek(); //…
Short answer: The average time complexity is O(1) (constant time), thanks to hash-based indexing. However, in worst-case scenarios (rare), it can degrade to O(n). Say this in the interview Define — one clear sentence (th…
Short answer: Contains(item) IndexOf(item) Find(predicate) FindAll(predicate) Exists(predicate) BinarySearch(item) (for sorted lists) Example: bool hasItem = numbers.Contains(10); Example code int index = numbers.IndexOf…
Short answer: IList<T> extends ICollection<T> and allows: Indexed access (like arrays) Inserting and removing at specific positions Example code IList<string> fruits = new List<string>(); fruits.A…
Short answer: Dictionary? Feature TryGetValue() Indexer (dictionary[key]) Safe? Yes – avoids exception No – throws if key doesn't exist Returns Boolean (and output value) Direct value Use case When unsure if key exists W…
Short answer: Actually, SortedList<TKey, TValue> stores key-value pairs sorted by keys. To store items in a specific order, use the key to represent the sorting criteria. Keys must be unique and implement IComparab…
Short answer: Due to the underlying balanced tree structure, these operations have O(log n) time complexity. 📘 C# Collection Initializers & LINQ – Interview Questions & Answers Real-world example (ShopNest) When…
Short answer: Operation LinkedList<T> List<T> Indexed access O(n) (no indexing) O(1) (direct access) Add/Remove at start/end O(1) O(n) (start), O(1) (end) Add/Remove in middle O(1) (with node ref) O(n) (shift…
Short answer: Union: Combines all unique elements from both sets set1.UnionWith(set2); Intersection: Keeps only elements present in both sets set1.IntersectWith(set2); Example: HashSet<int> set1 = new HashSet<in…
Short answer: Peek() returns the top element without removing it. It’s helpful for: Conditional checks Previewing what's next Preventing accidental removal Example: if (stack.Count > 0) Example code { var current = st…
Short answer: Use the Clear() method to remove all elements. Example: tasks.Clear(); After calling Clear(), the queue is empty (Count == 0). Example code Use the Clear() method to remove all elements. Example: tasks.Clea…
Short answer: Feature TryGetValue() Indexer (dictionary[key]) Safe? Yes – avoids exception No – throws if key doesn't exist Returns Boolean (and output value) Direct value Use case When unsure if key exists When key is g…
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…
C# Collections C# Programming Tutorial · Collections
Short answer: Use a foreach loop which iterates over the elements in sorted ascending order: foreach (var item in sortedSet)
{ Console.WriteLine(item); }
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: You can use a foreach loop over KeyValuePair<TKey, TValue> elements, which iterates in sorted key order: foreach (var kvp in sortedList) { Console.WriteLine($"Key: {kvp.Key}, Value: {kvp.Value}"); } You can also iterate over keys or values separately: foreach (var key in sortedList.Keys) { /* ... */ }
foreach (var value in sortedList.Values) { /* ... */ } 📘 C# SortedSet<T> – Interview Questions & Answers
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: Adding or removing at the start or end: O(1) Adding or removing at an arbitrary position (if you already have the node reference): O(1) Searching for a node by value: O(n), because traversal is required
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: No, HashSet<T> does not allow duplicates. Attempting to add a duplicate value will return false and not change the set.
bool added = uniqueNumbers.Add(2); // returns false because 2 already exists
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 Peek() method. Example: int top = stack.Peek(); This is useful when you just want to inspect the top element without altering the stack.
Use the Peek() method. Example: int top = stack.Peek(); This is useful when you just want to inspect the top element without altering the stack.
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 the Peek() method to view the front element without removing it.
Queue<string> tasks = new Queue<string>(); tasks.Enqueue("Task1"); string nextTask = tasks.Peek(); // Returns "Task1", does not remove it Useful when you want to see what’s next without modifying the queue.
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: The average time complexity is O(1) (constant time), thanks to hash-based indexing. However, in worst-case scenarios (rare), it can degrade to O(n).
C# Collections C# Programming Tutorial · Collections
Short answer: Contains(item) IndexOf(item) Find(predicate) FindAll(predicate) Exists(predicate) BinarySearch(item) (for sorted lists) Example: bool hasItem = numbers.Contains(10);
int index = numbers.IndexOf(10);
var result = numbers.Find(x => x > 50);
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: IList<T> extends ICollection<T> and allows: Indexed access (like arrays) Inserting and removing at specific positions
IList<string> fruits = new List<string>(); fruits.Add("Apple"); fruits.Insert(0, "Banana"); // Insert at index 0 Console.WriteLine(fruits[1]); // Access by index Real-world use case: Use IList<T> when order matters and you need to access, insert, or remove elements at specific positions, like reordering tasks in a to-do list.
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: Dictionary? Feature TryGetValue() Indexer (dictionary[key]) Safe? Yes – avoids exception No – throws if key doesn't exist Returns Boolean (and output value) Direct value Use case When unsure if key exists When key is guaranteed to exist if (dictionary.TryGetValue("Bob", out int age)) { Console.WriteLine(age); } //… dictionary["Unknown"]; // throws…… Dictionary? Feature TryGetValue() Indexer (dictionary[key]) Safe?…
Yes – avoids exception No – throws if key doesn't exist Returns Boolean (and output value) Direct value Use case When unsure if key exists When key is guaranteed to exist
if (dictionary.TryGetValue("Bob", out int age)) { Console.WriteLine(age); } // dictionary["Unknown"]; // throws KeyNotFoundException if missing Dictionary? Feature TryGetValue() Indexer (dictionary[key]) Safe? Yes – avoids exception No – throws if key doesn't exist Returns Boolean (and output value) Direct value Use case When unsure if key exists When key is guaranteed to exist Example: if (dictionary.TryGetValue("Bob", out int age)) { Console.WriteLine(age); } //… dictionary["Unknown"]; // throws… Dictionary? Feature TryGetValue() Indexer (dictionary[key]) Safe? Yes – avoids exception No – throws if key doesn't exist Returns Boolean (and output value) Direct value Use case When unsure if key exists When key is guaranteed to exist Example: if (dictionary.TryGetValue("Bob", out int age)) { Console.WriteLine(age); } // dictionary["Unknown"]; // throws KeyNotFoundException if missing
C# Collections C# Programming Tutorial · Collections
Short answer: Actually, SortedList<TKey, TValue> stores key-value pairs sorted by keys. To store items in a specific order, use the key to represent the sorting criteria. Keys must be unique and implement IComparable or provide a custom IComparer.
SortedList<int, string> sortedList = new SortedList<int, string>(); sortedList.Add(10, "Ten"); sortedList.Add(5, "Five"); sortedList.Add(20, "Twenty"); // Items automatically sorted by keys: 5, 10, 20 If you want to sort by custom criteria, implement an IComparer and pass it to the SortedList constructor.
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: Due to the underlying balanced tree structure, these operations have O(log n) time complexity. 📘 C# Collection Initializers & LINQ – 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: Operation LinkedList<T> List<T> Indexed access O(n) (no indexing) O(1) (direct access) Add/Remove at start/end O(1) O(n) (start), O(1) (end) Add/Remove in middle O(1) (with node ref) O(n) (shifts elements) Memory overhead Higher (extra pointers) Lower (array storage) Summary: Use LinkedList<T> when you need fast insertions/deletions anywhere and don’t require indexed access.
Use List<T> for fast random access and better memory efficiency. 📘 C# SortedList<TKey, TValue> – Interview Questions & Answers
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: Union: Combines all unique elements from both sets set1.UnionWith(set2); Intersection: Keeps only elements present in both sets set1.IntersectWith(set2); Example: HashSet<int> set1 = new HashSet<int> { 1, 2, 3 };
HashSet<int> set2 = new HashSet<int> { 3, 4, 5 };
set1.UnionWith(set2); // set1 = {1, 2, 3, 4, 5}
set1.IntersectWith(set2); // set1 = {3, 4, 5}
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: Peek() returns the top element without removing it. It’s helpful for: Conditional checks Previewing what's next Preventing accidental removal Example: if (stack.Count > 0)
{
var current = stack.Peek();
} Throws InvalidOperationException if the stack is empty.
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 the Clear() method to remove all elements. Example: tasks.Clear(); After calling Clear(), the queue is empty (Count == 0).
Use the Clear() method to remove all elements. Example: tasks.Clear(); After calling Clear(), the queue is empty (Count == 0).
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: Feature TryGetValue() Indexer (dictionary[key]) Safe? Yes – avoids exception No – throws if key doesn't exist Returns Boolean (and output value) Direct value Use case When unsure if key exists When key is guaranteed to exist
if (dictionary.TryGetValue("Bob", out int age)) { Console.WriteLine(age); } // dictionary["Unknown"]; // throws KeyNotFoundException if missing
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).
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.