Interview Q&A

Master technical and career interviews with structured answers—short definition, real examples, pitfalls, and how to answer in 60–90 seconds.

4608 total questions 4508 technical 100 career & HR 4272 from PDF library

Showing 151–175 of 398

Career & HR topics

By tech stack

Mid PDF
How do you add elements to the start or end of a LinkedList<T>?

Short answer: Use AddFirst(value) to add at the start. Use AddLast(value) to add at the end. numbers.AddFirst(5); // Adds 5 at the beginning numbers.AddLast(30); // Adds 30 at the end Real-world example (ShopNest) In Sho…

Collections Read answer
Mid PDF
How does the HashSet<T> differ from a List<T> or Dictionary<TKey, TValue>?

Short answer: Feature HashSet&lt;T&gt; List&lt;T&gt; Dictionary&lt;TKey, TValue&gt; Allows duplicates? No Yes Keys: No; Values: Yes Order No guaranteed order Maintains insertion order No guaranteed order Lookup speed O(1…

Collections Read answer
Mid PDF
How does a Stack<T> work internally?

Short answer: Internally, Stack&lt;T&gt; uses an array-based dynamic storage system: When capacity is exceeded, the internal array resizes automatically (typically doubles) The top of the stack is managed with a private…

Collections Read answer
Mid PDF
How does a Queue<T> work internally? Follow:

Short answer: Internally, Queue&lt;T&gt; uses a circular array to efficiently manage memory and operations. Head pointer marks the front (next item to be dequeued). Real-world example (ShopNest) ShopNest uses a Queue&lt;…

Collections Read answer
Mid PDF
How do you add key-value pairs to a Dictionary?

Short answer: Use the Add() method or the indexer []: // Using Add() dictionary.Add(&quot;key1&quot;, &quot;value1&quot;); // Using indexer dictionary[&quot;key2&quot;] = &quot;value2&quot;; Note: Add() throws an excepti…

Collections Read answer
Mid PDF
How do you add elements to a List<T> in C#?

Short answer: You can use the Add() or AddRange() method. Example code List&lt;int&gt; numbers = new List&lt;int&gt;(); numbers.Add(10); // Add single item numbers.AddRange(new int[] { 20, 30 }); // Add multiple Real-wor…

Collections Read answer
Mid PDF
for loop (when using index)?

Short answer: for (int i = 0; i &lt; fruits.Count; i++) { Console.WriteLine(fruits[i]); } Example code for (int i = 0; i &lt; fruits.Count; i++) { Console.WriteLine(fruits[i]); } Real-world example (ShopNest) In ShopNest…

Collections Read answer
Mid PDF
What are some advantages of using generic collections over non-generic collections?

Short answer: Generic collections offer several advantages: Type Safety: Compile-time checking prevents runtime errors. Performance: Avoids boxing/unboxing of value types. Code Clarity: Cleaner code without explicit cast…

Collections Read answer
Mid PDF
What are some performance trade-offs when choosing between different collections?

Short answer: Scenario Best Choice Trade-offs Fast indexed access List&lt;T&gt; Slower inserts/removes in the middle Frequent insert/delete at ends LinkedList&lt;T&gt; No fast indexed access; higher memory use Fast looku…

Collections Read answer
Mid PDF
How do you ensure thread safety when accessing collections in a multi-threaded environment?

Short answer: Use thread-safe collections provided by .NET (ConcurrentDictionary, ConcurrentQueue, BlockingCollection, etc.). Use synchronization primitives like lock, Mutex, Semaphore, or ReaderWriterLock around critica…

Collections Read answer
Mid PDF
How can you perform a LINQ query on a collection to filter, sort, or group elements?

Short answer: Filter: Use Where() to select elements based on a condition. Sort: Use OrderBy() or OrderByDescending(). Group: Use GroupBy() to group elements by a key. Example code var products = new List&lt;Product&gt;…

Collections Read answer
Mid PDF
What are the common use cases for a SortedSet<T>?

Short answer: When you need a collection of unique elements in sorted order. Performing range queries or retrieving elements in sorted order. Implementing mathematical set operations efficiently. Examples: Leaderboards S…

Collections Read answer
Mid PDF
How do you add, remove, or search for elements in a SortedList<TKey, TValue>?

Short answer: Add: sortedList.Add(4, &quot;Four&quot;); Remove: sortedList.Remove(2); // Remove element with key 2 Search (by key): bool exists = sortedList.ContainsKey(3); string value = sortedList[3]; // Access value b…

Collections Read answer
Mid PDF
How would you remove an element from a LinkedList<T>?

Short answer: Use Remove(value) to remove the first occurrence of the specified value, or RemoveFirst() / RemoveLast() to remove from the start or end respectively. numbers.Remove(10); // Removes the first node with valu…

Collections Read answer
Mid PDF
What methods are available in a Stack<T> for adding and removing elements?

Short answer: Method Description Push() Adds an element to the top Pop() Removes and returns the top element Peek() Returns top element without removing it Clear( Removes all elements Example code stack.Push(100); // Add…

Collections Read answer
Mid PDF
What methods does the Queue<T> class provide to add or remove elements?

Short answer: Operation Method Description Add Enqueue () Adds an item to the end of the queue Remove Dequeue () Removes and returns the item at the front Peek Peek() Returns the front item without removing it Example co…

Collections Read answer
Mid PDF
How do you remove a key-value pair from a Dictionary?

Short answer: Returns true if the key was found and removed, false otherwise. Example code Use the Remove(key) method: dictionary.Remove(&quot;key1&quot;); Real-world example (ShopNest) ShopNest caches product prices in…

Collections Read answer
Mid PDF
How do you remove elements from a List<T> in C#?

Short answer: Use methods like: Remove(item) – removes first occurrence RemoveAt(index) – removes by index RemoveAll(predicate) – removes all matching a condition Clear() – removes all items Example code numbers.Remove(1…

Collections Read answer
Mid PDF
How do you perform deep cloning or deep copying of a collection in C#?

Short answer: Deep cloning copies the collection and all objects inside it recursively. Ways to deep clone: Implement ICloneable in your objects with deep clone logic. Use serialization (binary, XML, JSON) to serialize a…

Collections Read answer
Mid PDF
How can you optimize the memory usage of a collection in C#?

Short answer: Pre-allocate capacity when you know the expected size (e.g., new List&lt;T&gt;(capacity)) to avoid frequent resizing. Explain a bit more Use value types or structs when appropriate to reduce reference overh…

Collections Read answer
Mid PDF
How do you perform operations like union, intersection, and difference with SortedSet<T>?

Short answer: Operation Method Description Union UnionWith() Adds all elements from another set Intersection IntersectWit h() Keeps only elements present in both sets Difference ExceptWith() Removes elements found in ano…

Collections Read answer
Mid PDF
How do you iterate through a LinkedList<T>?

Short answer: Use a foreach loop to traverse the linked list from start to end. foreach (var num in numbers) Example code { Console.WriteLine(num); } Real-world example (ShopNest) In ShopNest, an order page loads product…

Collections Read answer
Mid PDF
How do you remove duplicates from a collection using HashSet<T>?

Short answer: Add all elements from the collection to a HashSet&lt;T&gt;, which automatically removes duplicates. List&lt;int&gt; numbers = new List&lt;int&gt; { 1, 2, 2, 3, 3, 4 }; HashSet&lt;int&gt; uniqueNumbers = new…

Collections Read answer
Mid PDF
How do you check if a Dictionary contains a specific key or value?

Short answer: ContainsKey(key) – checks for key existence ContainsValue(value) – checks for value Example: dictionary.ContainsKey(&quot;Alice&quot;); // true/false dictionary.ContainsValue(30); // true/false Example code…

Collections Read answer
Mid PDF
What does ICollection<T> provide, and how does it differ from IEnumerable<T>?

Short answer: ICollection&lt;T&gt; extends IEnumerable&lt;T&gt; and adds features like: Counting (Count property) Adding and removing items (Add, Remove) Checking for existence (Contains) Difference: IEnumerable&lt;T&gt;…

Collections Read answer

C# Collections C# Programming Tutorial · Collections

Short answer: Use AddFirst(value) to add at the start. Use AddLast(value) to add at the end. numbers.AddFirst(5); // Adds 5 at the beginning numbers.AddLast(30); // Adds 30 at the end

Real-world example (ShopNest)

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).

Say this in the interview

  1. Define — one clear sentence (the short answer above).
  2. Example — relate it to a project like ShopNest or your real work.
  3. Trade-off — when you would not use it.
Permalink & share

C# Collections C# Programming Tutorial · Collections

Short answer: Feature HashSet<T> List<T> Dictionary<TKey, TValue> Allows duplicates? No Yes Keys: No; Values: Yes Order No guaranteed order Maintains insertion order No guaranteed order Lookup speed O(1) average O(n) O(1) average for keys Key-value pairs No (only values) No Yes (key-value pairs)

Real-world example (ShopNest)

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).

Say this in the interview

  1. Define — one clear sentence (the short answer above).
  2. Example — relate it to a project like ShopNest or your real work.
  3. Trade-off — when you would not use it.
Permalink & share

C# Collections C# Programming Tutorial · Collections

Short answer: Internally, Stack<T> uses an array-based dynamic storage system: When capacity is exceeded, the internal array resizes automatically (typically doubles) The top of the stack is managed with a private index pointer This structure provides fast push and pop operations (constant time on average).

Real-world example (ShopNest)

ShopNest uses a Queue<Order> for “orders waiting for payment confirmation,” and a Stack<Uri> for back-navigation in the admin UI.

Say this in the interview

  1. Define — one clear sentence (the short answer above).
  2. Example — relate it to a project like ShopNest or your real work.
  3. Trade-off — when you would not use it.
Permalink & share

C# Collections C# Programming Tutorial · Collections

Short answer: Internally, Queue<T> uses a circular array to efficiently manage memory and operations. Head pointer marks the front (next item to be dequeued).

Real-world example (ShopNest)

ShopNest uses a Queue<Order> for “orders waiting for payment confirmation,” and a Stack<Uri> for back-navigation in the admin UI.

Say this in the interview

  1. Define — one clear sentence (the short answer above).
  2. Example — relate it to a project like ShopNest or your real work.
  3. Trade-off — when you would not use it.
Permalink & share

C# Collections C# Programming Tutorial · Collections

Short answer: Use the Add() method or the indexer []: // Using Add() dictionary.Add("key1", "value1"); // Using indexer dictionary["key2"] = "value2"; Note: Add() throws an exception if the key already exists, while indexer will overwrite the value.

Real-world example (ShopNest)

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.

Say this in the interview

  1. Define — one clear sentence (the short answer above).
  2. Example — relate it to a project like ShopNest or your real work.
  3. Trade-off — when you would not use it.
Permalink & share

C# Collections C# Programming Tutorial · Collections

Short answer: You can use the Add() or AddRange() method.

Example code

List<int> numbers = new List<int>(); numbers.Add(10); // Add single item numbers.AddRange(new int[] { 20, 30 }); // Add multiple

Real-world example (ShopNest)

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).

Say this in the interview

  1. Define — one clear sentence (the short answer above).
  2. Example — relate it to a project like ShopNest or your real work.
  3. Trade-off — when you would not use it.
Permalink & share

C# Collections C# Programming Tutorial · Collections

Short answer: for (int i = 0; i < fruits.Count; i++) { Console.WriteLine(fruits[i]); }

Example code

for (int i = 0; i < fruits.Count; i++)
{ Console.WriteLine(fruits[i]); }

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 the interview

  1. Define — one clear sentence (the short answer above).
  2. Example — relate it to a project like ShopNest or your real work.
  3. Trade-off — when you would not use it.
Permalink & share

C# Collections C# Programming Tutorial · Collections

Short answer: Generic collections offer several advantages: Type Safety: Compile-time checking prevents runtime errors. Performance: Avoids boxing/unboxing of value types. Code Clarity: Cleaner code without explicit casting. Reusability: Generic code can work with any data type.

Example code

List<string> names = new List<string>(); names.Add("Alice"); // Valid // names.Add(123); // Compile-time error Real-world use case: When managing a list of product names or order numbers, using List<string> or List<int> ensures that invalid data types are caught at compile time.

Real-world example (ShopNest)

Prefer List<Order> over ArrayList in ShopNest. Generics catch type mistakes at compile time and avoid boxing when you store ints or decimals.

Say this in the interview

  1. Define — one clear sentence (the short answer above).
  2. Example — relate it to a project like ShopNest or your real work.
  3. Trade-off — when you would not use it.
Permalink & share

C# Collections C# Programming Tutorial · Collections

Short answer: Scenario Best Choice Trade-offs Fast indexed access List<T> Slower inserts/removes in the middle Frequent insert/delete at ends LinkedList<T> No fast indexed access; higher memory use Fast lookups by key Dictionary<TKey, TValue> No sorted order Sorted key-value pairs SortedList<TKey, TValue> or SortedDictionary<TKey, TValue> Slower inserts vs Dictionary Thread-safe multi-thread use ConcurrentDictionary /…

Explain a bit more

ConcurrentQueue Slight overhead for synchronization

Say this in the interview

  1. Define — one clear sentence (the short answer above).
  2. Example — relate it to a project like ShopNest or your real work.
  3. Trade-off — when you would not use it.
Permalink & share

C# Collections C# Programming Tutorial · Collections

Short answer: Use thread-safe collections provided by .NET (ConcurrentDictionary, ConcurrentQueue, BlockingCollection, etc.). Use synchronization primitives like lock, Mutex, Semaphore, or ReaderWriterLock around critical sections when using non-thread-safe collections. Avoid shared mutable state or design the program to minimize contention. Use immutable collections when possible to eliminate synchronization.

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 the interview

  1. Define — one clear sentence (the short answer above).
  2. Example — relate it to a project like ShopNest or your real work.
  3. Trade-off — when you would not use it.
Permalink & share

C# Collections C# Programming Tutorial · Collections

Short answer: Filter: Use Where() to select elements based on a condition. Sort: Use OrderBy() or OrderByDescending(). Group: Use GroupBy() to group elements by a key.

Example code

var products = new List<Product> { ... }; // Filter products with price > 100 var expensiveProducts = products.Where(p => p.Price > 100); // Sort products by name var sortedProducts = products.OrderBy(p => p.Name); // Group products by category var groupedProducts = products.GroupBy(p => p.Category);

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 the interview

  1. Define — one clear sentence (the short answer above).
  2. Example — relate it to a project like ShopNest or your real work.
  3. Trade-off — when you would not use it.
Permalink & share

C# Collections C# Programming Tutorial · Collections

Short answer: When you need a collection of unique elements in sorted order. Performing range queries or retrieving elements in sorted order. Implementing mathematical set operations efficiently. Examples: Leaderboards Scheduling tasks sorted by priority Auto-complete suggestions sorted alphabetically

Real-world example (ShopNest)

When applying a coupon, ShopNest keeps used coupon codes in a HashSet<string> so “already used?” checks stay fast and unique.

Say this in the interview

  1. Define — one clear sentence (the short answer above).
  2. Example — relate it to a project like ShopNest or your real work.
  3. Trade-off — when you would not use it.
Permalink & share

C# Collections C# Programming Tutorial · Collections

Short answer: Add: sortedList.Add(4, "Four"); Remove: sortedList.Remove(2); // Remove element with key 2 Search (by key): bool exists = sortedList.ContainsKey(3); string value = sortedList[3]; // Access value by key

Example code

Add: sortedList.Add(4, "Four"); Remove: sortedList.Remove(2); // Remove element with key 2 Search (by key): bool exists = sortedList.ContainsKey(3);
string value = sortedList[3]; // Access value by key

Real-world example (ShopNest)

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).

Say this in the interview

  1. Define — one clear sentence (the short answer above).
  2. Example — relate it to a project like ShopNest or your real work.
  3. Trade-off — when you would not use it.
Permalink & share

C# Collections C# Programming Tutorial · Collections

Short answer: Use Remove(value) to remove the first occurrence of the specified value, or RemoveFirst() / RemoveLast() to remove from the start or end respectively. numbers.Remove(10); // Removes the first node with value 10 numbers.RemoveFirst(); // Removes the first node numbers.RemoveLast(); // Removes the last node

Real-world example (ShopNest)

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).

Say this in the interview

  1. Define — one clear sentence (the short answer above).
  2. Example — relate it to a project like ShopNest or your real work.
  3. Trade-off — when you would not use it.
Permalink & share

C# Collections C# Programming Tutorial · Collections

Short answer: Method Description Push() Adds an element to the top Pop() Removes and returns the top element Peek() Returns top element without removing it Clear( Removes all elements

Example code

stack.Push(100); // Add int top = stack.Pop(); // Remove and return top

Real-world example (ShopNest)

ShopNest uses a Queue<Order> for “orders waiting for payment confirmation,” and a Stack<Uri> for back-navigation in the admin UI.

Say this in the interview

  1. Define — one clear sentence (the short answer above).
  2. Example — relate it to a project like ShopNest or your real work.
  3. Trade-off — when you would not use it.
Permalink & share

C# Collections C# Programming Tutorial · Collections

Short answer: Operation Method Description Add Enqueue () Adds an item to the end of the queue Remove Dequeue () Removes and returns the item at the front Peek Peek() Returns the front item without removing it

Example code

Queue<int> queue = new Queue<int>(); queue.Enqueue(1); // Add int front = queue.Dequeue(); // Remove

Real-world example (ShopNest)

ShopNest uses a Queue<Order> for “orders waiting for payment confirmation,” and a Stack<Uri> for back-navigation in the admin UI.

Say this in the interview

  1. Define — one clear sentence (the short answer above).
  2. Example — relate it to a project like ShopNest or your real work.
  3. Trade-off — when you would not use it.
Permalink & share

C# Collections C# Programming Tutorial · Collections

Short answer: Returns true if the key was found and removed, false otherwise.

Example code

Use the Remove(key) method: dictionary.Remove("key1");

Real-world example (ShopNest)

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.

Say this in the interview

  1. Define — one clear sentence (the short answer above).
  2. Example — relate it to a project like ShopNest or your real work.
  3. Trade-off — when you would not use it.
Permalink & share

C# Collections C# Programming Tutorial · Collections

Short answer: Use methods like: Remove(item) – removes first occurrence RemoveAt(index) – removes by index RemoveAll(predicate) – removes all matching a condition Clear() – removes all items

Example code

numbers.Remove(10); numbers.RemoveAt(0); numbers.RemoveAll(x => x > 100); numbers.Clear();

Real-world example (ShopNest)

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).

Say this in the interview

  1. Define — one clear sentence (the short answer above).
  2. Example — relate it to a project like ShopNest or your real work.
  3. Trade-off — when you would not use it.
Permalink & share

C# Collections C# Programming Tutorial · Collections

Short answer: Deep cloning copies the collection and all objects inside it recursively. Ways to deep clone: Implement ICloneable in your objects with deep clone logic. Use serialization (binary, XML, JSON) to serialize and deserialize objects. Manually create new instances of each item. Example (manual): List<MyClass> DeepClone(List<MyClass> original)

Example code

{
return original.Select(item => item.Clone()).ToList();
} Note: MyClass must implement a Clone() method that performs deep copy.

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 the interview

  1. Define — one clear sentence (the short answer above).
  2. Example — relate it to a project like ShopNest or your real work.
  3. Trade-off — when you would not use it.
Permalink & share

C# Collections C# Programming Tutorial · Collections

Short answer: Pre-allocate capacity when you know the expected size (e.g., new List<T>(capacity)) to avoid frequent resizing.

Explain a bit more

Use value types or structs when appropriate to reduce reference overhead. Choose collections with lower overhead for your use case (e.g., List<T> instead of LinkedList<T> if indexing is needed). Use immutable collections or pooling to minimize allocations. Avoid unnecessary boxing/unboxing by using generic collections instead of non-generic. Regularly trim collections if supported (e.g., List<T>.TrimExcess()). 📘 C# Advanced Collection Topics – Interview Questions & Answers

Say this in the interview

  1. Define — one clear sentence (the short answer above).
  2. Example — relate it to a project like ShopNest or your real work.
  3. Trade-off — when you would not use it.
Permalink & share

C# Collections C# Programming Tutorial · Collections

Short answer: Operation Method Description Union UnionWith() Adds all elements from another set Intersection IntersectWit h() Keeps only elements present in both sets Difference ExceptWith() Removes elements found in another set

Example code

SortedSet<int> set1 = new SortedSet<int> { 1, 2, 3 }; SortedSet<int> set2 = new SortedSet<int> { 3, 4, 5 }; set1.UnionWith(set2); // {1, 2, 3, 4, 5} set1.IntersectWith(set2); // {3, 4, 5} (if applied on the original set1) set1.ExceptWith(set2); // {1, 2} (if applied on the original set1)

Real-world example (ShopNest)

When applying a coupon, ShopNest keeps used coupon codes in a HashSet<string> so “already used?” checks stay fast and unique.

Say this in the interview

  1. Define — one clear sentence (the short answer above).
  2. Example — relate it to a project like ShopNest or your real work.
  3. Trade-off — when you would not use it.
Permalink & share

C# Collections C# Programming Tutorial · Collections

Short answer: Use a foreach loop to traverse the linked list from start to end. foreach (var num in numbers)

Example code

{ Console.WriteLine(num); }

Real-world example (ShopNest)

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).

Say this in the interview

  1. Define — one clear sentence (the short answer above).
  2. Example — relate it to a project like ShopNest or your real work.
  3. Trade-off — when you would not use it.
Permalink & share

C# Collections C# Programming Tutorial · Collections

Short answer: Add all elements from the collection to a HashSet<T>, which automatically removes duplicates. List<int> numbers = new List<int> { 1, 2, 2, 3, 3, 4 }; HashSet<int> uniqueNumbers = new HashSet<int>(numbers); Now, uniqueNumbers contains only unique values: {1, 2, 3, 4}.

Example code

Add all elements from the collection to a HashSet<T>, which automatically removes duplicates. List<int> numbers = new List<int> { 1, 2, 2, 3, 3, 4 };
HashSet<int> uniqueNumbers = new HashSet<int>(numbers); Now, uniqueNumbers contains only unique values: {1, 2, 3, 4}.

Real-world example (ShopNest)

When applying a coupon, ShopNest keeps used coupon codes in a HashSet<string> so “already used?” checks stay fast and unique.

Say this in the interview

  1. Define — one clear sentence (the short answer above).
  2. Example — relate it to a project like ShopNest or your real work.
  3. Trade-off — when you would not use it.
Permalink & share

C# Collections C# Programming Tutorial · Collections

Short answer: ContainsKey(key) – checks for key existence ContainsValue(value) – checks for value Example: dictionary.ContainsKey("Alice"); // true/false dictionary.ContainsValue(30); // true/false

Example code

ContainsKey(key) – checks for key existence ContainsValue(value) – checks for value Example: dictionary.ContainsKey("Alice"); // true/false
dictionary.ContainsValue(30); // true/false

Real-world example (ShopNest)

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.

Say this in the interview

  1. Define — one clear sentence (the short answer above).
  2. Example — relate it to a project like ShopNest or your real work.
  3. Trade-off — when you would not use it.
Permalink & share

C# Collections C# Programming Tutorial · Collections

Short answer: ICollection<T> extends IEnumerable<T> and adds features like: Counting (Count property) Adding and removing items (Add, Remove) Checking for existence (Contains) Difference: IEnumerable<T> is read-only and forward-only iteration. ICollection<T> adds modification capabilities.

Example code

ICollection<int> numbers = new List<int>(); numbers.Add(5); numbers.Remove(5); Console.WriteLine(numbers.Count); Real-world use case: Use ICollection<T> when you need to manipulate the collection (add/remove items), such as managing an in-memory cart of products in a shopping application.

Real-world example (ShopNest)

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).

Say this in the interview

  1. Define — one clear sentence (the short answer above).
  2. Example — relate it to a project like ShopNest or your real work.
  3. Trade-off — when you would not use it.
Permalink & share
Toolliyo Assistant
Ask about tutorials, ebooks, training, pricing, mentor services, and support. I use public site content only—not admin or internal tools.

care@toolliyo.com

Need callback? Share your details