Interview Q&A

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

4616 total questions 4516 technical 100 career & HR 4346 from PDF library

Showing 1–25 of 37

Popular tracks

Junior PDF
What is a LinkedList<T> in C#?

LinkedList&lt;T&gt; is a doubly linked list collection in C#. It stores elements as nodes, where each node contains the data and references to the previous and next nodes. Allows efficient insertions and deletions anywhe…

Collections Read answer
Junior PDF
What is a ConcurrentDictionary<TKey, TValue> in C#?

ConcurrentDictionary&lt;TKey, TValue&gt; is a thread-safe dictionary designed for concurrent access by multiple threads without needing external synchronization (locks). Supports atomic operations like adding, updating,…

Collections Read answer
Junior PDF
What is a SortedSet<T> in C#?

SortedSet&lt;T&gt; is a collection that stores unique elements in sorted order. Implements a self-balancing binary search tree (usually a Red-Black Tree). Automatically maintains elements in ascending sorted order. Provi…

Collections Read answer
Junior PDF
What is a SortedList<TKey, TValue> in C#?

SortedList&lt;TKey, TValue&gt; is a collection of key-value pairs that maintains the elements sorted by keys. Implements both IDictionary&lt;TKey, TValue&gt; and IList&lt;KeyValuePair&lt;TKey, TValue&gt;&gt;. Keys are au…

Collections Read answer
Junior PDF
What is a LinkedList<T> in C#? Follow:

LinkedList&lt;T&gt; is a doubly linked list collection in C#. It stores elements as nodes, where each node contains the data and references to the previous and next nodes. Allows efficient insertions and deletions anywhe…

Collections Read answer
Junior PDF
What is a HashSet<T> in C# and when would you use it?

HashSet&lt;T&gt; is a generic collection that stores unique elements with no particular order. It is optimized for fast lookups, additions, and deletions. Use case: When you want to store a collection of unique items wit…

Collections Read answer
Junior PDF
What is a Stack<T> in C#?

A Stack&lt;T&gt; is a generic collection in C# that stores elements in a Last-In, First-Out (LIFO) order. The last element added is the first one removed Belongs to System.Collections.Generic Real-world use case: Undo op…

Collections Read answer
Junior PDF
What is a Queue<T> in C#?

A Queue&lt;T&gt; is a generic collection in C# that stores elements in a First-In, First-Out (FIFO) order. The first item added is the first to be removed. It is part of the System.Collections.Generic namespace. Use case…

Collections Read answer
Junior PDF
What is a Dictionary<TKey, TValue> in C#?

A Dictionary&lt;TKey, TValue&gt; is a generic collection in C# that stores data as key-value pairs. It provides fast lookup, addition, and removal of values based on their keys. Keys must be unique Keys must be non-null…

Collections Read answer
Junior PDF
What is a List<T> in C# and when should you use it?

List&lt;T&gt; is a generic collection in C# that represents a dynamically sized list of elements. It resides in the System.Collections.Generic namespace and grows or shrinks as needed. Use it when: You need a resizable a…

Collections Read answer
Junior PDF
What is the difference between generic and non-generic collections in C#?

Generic collections are type-safe and defined using generics (&lt;T&gt;), allowing you to specify the type of elements they hold. This ensures compile-time type checking and eliminates the need for casting. Non-generic c…

Collections Read answer
Junior PDF
What is a Collection<T> class in C# and how does it differ from other collections?

Collection&lt;T&gt; is a base class for creating custom collections. It wraps an IList&lt;T&gt; internally and provides virtual methods for insert, remove, and clear, allowing easy customization. Unlike List&lt;T&gt;, wh…

Collections Read answer
Junior PDF
What is the role of IComparer<T> and IEqualityComparer<T> in sorting and comparing collections?

IComparer&lt;T&gt; defines a method Compare(T x, T y) for custom sorting logic (used in sorting operations like Sort()). IEqualityComparer&lt;T&gt; defines methods Equals(T x, T y) and GetHashCode(T obj) to determine equ…

Collections Read answer
Junior PDF
What is the time complexity for adding, removing, or searching for an element in a HashSet<T>?

Answer: All these operations generally have O(1) average time complexity due to the underlying hash table structure. What interviewers expect A clear definition tied to Collections in C# Collections projects Trade-offs (…

Collections Read answer
Junior PDF
What is the use of the IEnumerable<T> interface in C# collections?

IEnumerable&lt;T&gt; is the base interface for all generic collections that can be enumerated (looped over). It allows the use of foreach loops and LINQ queries. It defines a single method: IEnumerator&lt;T&gt; GetEnumer…

Collections Read answer
Junior PDF
What is the difference between BlockingCollection<T> and a regular Collection<T>?

Feature BlockingCollection&lt;T&gt; Collection&lt;T&gt; Thread safety Thread-safe for adding and taking items Not thread-safe Blocking behavior Supports blocking and bounding (waits when empty/full) No blocking behavior…

Collections Read answer
Junior PDF
What is the benefit of using LINQ to manipulate collections in C#?

Concise and readable code: LINQ makes querying collections clear and expressive. Declarative style: You focus on what to retrieve, not how. Powerful operations: Filtering, sorting, grouping, joining, projecting, and more…

Collections Read answer
Junior PDF
What is the time complexity of searching for a key in a SortedList<TKey, TValue>?

Searching by key uses binary search, so the time complexity is O(log n). What interviewers expect A clear definition tied to Collections in C# Collections projects Trade-offs (performance, maintainability, security, cost…

Collections Read answer
Junior PDF
What is the time complexity for Push() and Pop() operations in a Stack<T>?

Answer: Push() → O(1) average, O(n) worst-case (if resizing needed) Pop() → O(1) These operations are fast and efficient due to the internal array structure. What interviewers expect A clear definition tied to Collection…

Collections Read answer
Junior PDF
What is the time complexity for the operations Enqueue() and Dequeue() in a Queue<T>?

Answer: Enqueue() → O(1) average case Dequeue() → O(1) average case Due to the internal circular array and pointer arithmetic, both operations are highly efficient unless resizing is needed (which is O(n), but infrequent…

Collections Read answer
Junior PDF
What is the time complexity of accessing an element in a List<T>?

Answer: Accessing an element by index is O(1) (constant time) — same as arrays. Example: int first = numbers[0]; // O(1) What interviewers expect A clear definition tied to Collections in C# Collections projects Trade-of…

Collections Read answer
Junior PDF
What is the time complexity of adding or removing elements in a LinkedList<T>?

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 What inte…

Collections Read answer
Junior PDF
What is the time complexity of searching for a key in a Dictionary?

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). What interviewers expect A clear definition tied to Collections…

Collections Read answer
Junior PDF
What is the role of the IList<T> interface in collections?

IList&lt;T&gt; extends ICollection&lt;T&gt; and allows: Indexed access (like arrays) Inserting and removing at specific positions Example: IList&lt;string&gt; fruits = new List&lt;string&gt;(); fruits.Add("Apple"); fruit…

Collections Read answer
Junior PDF
What is the difference between TryGetValue() and indexer access in

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 gua…

Collections Read answer

C# Collections C# Programming Tutorial · Collections

LinkedList<T> is a doubly linked list collection in C#. It stores elements as nodes,

where each node contains the data and references to the previous and next nodes.

  • Allows efficient insertions and deletions anywhere in the list.
  • Does not support indexed access like List<T>.

Example:

LinkedList<int> numbers = new LinkedList<int>();

numbers.AddLast(10);

numbers.AddLast(20);

Permalink & share

C# Collections C# Programming Tutorial · Collections

ConcurrentDictionary<TKey, TValue> is a thread-safe dictionary designed for

concurrent access by multiple threads without needing external synchronization (locks).

  • Supports atomic operations like adding, updating, and removing items.
  • Useful in multi-threaded scenarios where data integrity and performance are critical.

Example:

ConcurrentDictionary<int, string> concurrentDict = new

ConcurrentDictionary<int, string>();

concurrentDict.TryAdd(1, "One");

concurrentDict.TryUpdate(1, "Uno", "One");

Permalink & share

C# Collections C# Programming Tutorial · Collections

SortedSet<T> is a collection that stores unique elements in sorted order.

  • Implements a self-balancing binary search tree (usually a Red-Black Tree).
  • Automatically maintains elements in ascending sorted order.
  • Provides set operations like union, intersection, and difference.

Example:

SortedSet<int> sortedSet = new SortedSet<int> { 5, 1, 3 };

sortedSet.Add(2); // Sorted order maintained: {1, 2, 3, 5}

Permalink & share

C# Collections C# Programming Tutorial · Collections

SortedList<TKey, TValue> is a collection of key-value pairs that maintains the

elements sorted by keys.

  • Implements both IDictionary<TKey, TValue> and

IList<KeyValuePair<TKey, TValue>>.

  • Keys are automatically sorted in ascending order based on their natural comparer

or a provided comparer.

Example:

SortedList<int, string> sortedList = new SortedList<int, string>();

sortedList.Add(3, "Three");

sortedList.Add(1, "One");

sortedList.Add(2, "Two");

The elements are stored sorted by key: 1, 2, 3.

Permalink & share

C# Collections C# Programming Tutorial · Collections

LinkedList<T> is a doubly linked list collection in C#. It stores elements as nodes,

where each node contains the data and references to the previous and next nodes.

  • Allows efficient insertions and deletions anywhere in the list.
  • Does not support indexed access like List<T>.

Example:

LinkedList<int> numbers = new LinkedList<int>();

numbers.AddLast(10);

numbers.AddLast(20);

Permalink & share

C# Collections C# Programming Tutorial · Collections

HashSet<T> is a generic collection that stores unique elements with no particular order.

It is optimized for fast lookups, additions, and deletions.

Use case:

When you want to store a collection of unique items without duplicates, such as user IDs,

tags, or keywords.

HashSet<int> uniqueNumbers = new HashSet<int> { 1, 2, 3 };

uniqueNumbers.Add(4);

Permalink & share

C# Collections C# Programming Tutorial · Collections

A Stack<T> is a generic collection in C# that stores elements in a Last-In, First-Out

(LIFO) order.

  • The last element added is the first one removed
  • Belongs to System.Collections.Generic

Real-world use case:

Undo operations, browser history, expression evaluation.

Example:

Stack<int> numbers = new Stack<int>();

numbers.Push(10);

numbers.Push(20); // Top of the stack

Permalink & share

C# Collections C# Programming Tutorial · Collections

A Queue<T> is a generic collection in C# that stores elements in a First-In, First-Out

(FIFO) order.

  • The first item added is the first to be removed.
  • It is part of the System.Collections.Generic namespace.

Use case:

Modeling real-world queues — e.g., print jobs, task scheduling, or customer service

systems.

Example:

Queue<string> orders = new Queue<string>();

orders.Enqueue("Order1");

orders.Enqueue("Order2");

Permalink & share

C# Collections C# Programming Tutorial · Collections

A Dictionary<TKey, TValue> is a generic collection in C# that stores data as

key-value pairs. It provides fast lookup, addition, and removal of values based on their

keys.

  • Keys must be unique
  • Keys must be non-null (for reference types)
  • Values can be null if the type allows it

Example:

Dictionary<string, int> ages = new Dictionary<string, int>();

ges.Add("Alice", 30);

ges.Add("Bob", 25);

Use case: Storing user profiles by ID, or mapping product names to prices.

Permalink & share

C# Collections C# Programming Tutorial · Collections

List<T> is a generic collection in C# that represents a dynamically sized list of elements.

It resides in the System.Collections.Generic namespace and grows or shrinks as

needed.

Use it when:

  • You need a resizable array-like structure
  • You want to perform frequent insertions, deletions, and searches

Example:

List<string> names = new List<string>();

names.Add("Alice");

Permalink & share

C# Collections C# Programming Tutorial · Collections

Generic collections are type-safe and defined using generics (<T>), allowing you to specify

the type of elements they hold. This ensures compile-time type checking and eliminates the

need for casting.

Non-generic collections, on the other hand, store elements as objects (object type),

requiring boxing/unboxing for value types and casting for reference types.

Example:

// Generic collection

List<int> numbers = new List<int>();

numbers.Add(10); // No boxing, type-safe

// Non-generic collection

rrayList list = new ArrayList();
list.Add(10); // Boxing occurs
int value = (int)list[0]; // Needs casting

Real-world use case:

In applications dealing with specific data types (e.g., a list of customer IDs), generic

collections are ideal. Non-generic collections may be used in legacy systems or when

dealing with multiple data types.

Permalink & share

C# Collections C# Programming Tutorial · Collections

  • Collection<T> is a base class for creating custom collections.
  • It wraps an IList<T> internally and provides virtual methods for insert, remove, and

clear, allowing easy customization.

  • Unlike List<T>, which is optimized for performance, Collection<T> focuses on

extensibility.

  • Useful when you want to create a collection with customized behaviors (e.g.,

validation, event firing).

Permalink & share

C# Collections C# Programming Tutorial · Collections

  • IComparer<T> defines a method Compare(T x, T y) for custom sorting logic

(used in sorting operations like Sort()).

  • IEqualityComparer<T> defines methods Equals(T x, T y) and

GetHashCode(T obj) to determine equality and hashing (used in dictionaries,

sets, etc.).

  • They allow collections to customize how items are compared or checked for equality,

beyond default implementations.

Permalink & share

C# Collections C# Programming Tutorial · Collections

Answer: All these operations generally have O(1) average time complexity due to the underlying hash table structure.

What interviewers expect

  • A clear definition tied to Collections in C# Collections projects
  • Trade-offs (performance, maintainability, security, cost)
  • When you would and would not use it in production

Real-world example

In a production C# Collections application, teams apply this when handling user-facing features or integration boundaries. For example, you might use it during a sprint where reliability and observability matter—logging metrics, validating edge cases, and documenting the decision in an ADR so future developers understand why the approach was chosen.

How to explain in the interview

  1. Define the concept in one or two sentences.
  2. Context — where it fits in C# Collections architecture.
  3. Example — a specific project, bug, or performance win.
  4. Trade-off — what you gain vs what you sacrifice.

Tip: Practice aloud on Toolliyo mock interview or the Interview Q&A section before your real interview.

Permalink & share

C# Collections C# Programming Tutorial · Collections

IEnumerable<T> is the base interface for all generic collections that can be enumerated

(looped over). It allows the use of foreach loops and LINQ queries.

It defines a single method:

IEnumerator<T> GetEnumerator();

Example:

List<string> items = new List<string> { "A", "B", "C" };
foreach (string item in items) // IEnumerable<string> in action
{

Console.WriteLine(item);

}

Real-world use case:

When reading product data from a list or querying a database, IEnumerable<T> allows

deferred execution and efficient data processing using LINQ.

Permalink & share

C# Collections C# Programming Tutorial · Collections

Feature BlockingCollection<T> Collection<T>

Thread safety Thread-safe for adding and taking items Not thread-safe

Blocking

behavior

Supports blocking and bounding (waits when

empty/full)

No blocking behavior

Use case Producer-consumer scenarios General-purpose

collection

dditional

features

Supports bounded capacity and cancellation Basic collection

BlockingCollection<T> wraps around other thread-safe collections and provides

blocking and bounding capabilities, ideal for producer-consumer queues.

📘 C# Collections: Performance &

Memory Considerations – Interview Q&A

Permalink & share

C# Collections C# Programming Tutorial · Collections

  • Concise and readable code: LINQ makes querying collections clear and

expressive.

  • Declarative style: You focus on what to retrieve, not how.
  • Powerful operations: Filtering, sorting, grouping, joining, projecting, and more.
  • Deferred execution: Queries execute only when results are needed, improving

performance.

  • Strongly typed: Compile-time checking and IntelliSense support.
Permalink & share

C# Collections C# Programming Tutorial · Collections

Searching by key uses binary search, so the time complexity is O(log n).

What interviewers expect

  • A clear definition tied to Collections in C# Collections projects
  • Trade-offs (performance, maintainability, security, cost)
  • When you would and would not use it in production

Real-world example

In a production C# Collections application, teams apply this when handling user-facing features or integration boundaries. For example, you might use it during a sprint where reliability and observability matter—logging metrics, validating edge cases, and documenting the decision in an ADR so future developers understand why the approach was chosen.

How to explain in the interview

  1. Define the concept in one or two sentences.
  2. Context — where it fits in C# Collections architecture.
  3. Example — a specific project, bug, or performance win.
  4. Trade-off — what you gain vs what you sacrifice.

Tip: Practice aloud on Toolliyo mock interview or the Interview Q&A section before your real interview.

Permalink & share

C# Collections C# Programming Tutorial · Collections

Answer: Push() → O(1) average, O(n) worst-case (if resizing needed) Pop() → O(1) These operations are fast and efficient due to the internal array structure.

What interviewers expect

  • A clear definition tied to Collections in C# Collections projects
  • Trade-offs (performance, maintainability, security, cost)
  • When you would and would not use it in production

Real-world example

In a production C# Collections application, teams apply this when handling user-facing features or integration boundaries. For example, you might use it during a sprint where reliability and observability matter—logging metrics, validating edge cases, and documenting the decision in an ADR so future developers understand why the approach was chosen.

How to explain in the interview

  1. Define the concept in one or two sentences.
  2. Context — where it fits in C# Collections architecture.
  3. Example — a specific project, bug, or performance win.
  4. Trade-off — what you gain vs what you sacrifice.

Tip: Practice aloud on Toolliyo mock interview or the Interview Q&A section before your real interview.

Permalink & share

C# Collections C# Programming Tutorial · Collections

Answer: Enqueue() → O(1) average case Dequeue() → O(1) average case Due to the internal circular array and pointer arithmetic, both operations are highly efficient unless resizing is needed (which is O(n), but infrequent).

What interviewers expect

  • A clear definition tied to Collections in C# Collections projects
  • Trade-offs (performance, maintainability, security, cost)
  • When you would and would not use it in production

Real-world example

In a production C# Collections application, teams apply this when handling user-facing features or integration boundaries. For example, you might use it during a sprint where reliability and observability matter—logging metrics, validating edge cases, and documenting the decision in an ADR so future developers understand why the approach was chosen.

How to explain in the interview

  1. Define the concept in one or two sentences.
  2. Context — where it fits in C# Collections architecture.
  3. Example — a specific project, bug, or performance win.
  4. Trade-off — what you gain vs what you sacrifice.

Tip: Practice aloud on Toolliyo mock interview or the Interview Q&A section before your real interview.

Permalink & share

C# Collections C# Programming Tutorial · Collections

Answer: Accessing an element by index is O(1) (constant time) — same as arrays. Example: int first = numbers[0]; // O(1)

What interviewers expect

  • A clear definition tied to Collections in C# Collections projects
  • Trade-offs (performance, maintainability, security, cost)
  • When you would and would not use it in production

Real-world example

In a production C# Collections application, teams apply this when handling user-facing features or integration boundaries. For example, you might use it during a sprint where reliability and observability matter—logging metrics, validating edge cases, and documenting the decision in an ADR so future developers understand why the approach was chosen.

How to explain in the interview

  1. Define the concept in one or two sentences.
  2. Context — where it fits in C# Collections architecture.
  3. Example — a specific project, bug, or performance win.
  4. Trade-off — what you gain vs what you sacrifice.

Tip: Practice aloud on Toolliyo mock interview or the Interview Q&A section before your real interview.

Permalink & share

C# Collections C# Programming Tutorial · Collections

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

What interviewers expect

  • A clear definition tied to Collections in C# Collections projects
  • Trade-offs (performance, maintainability, security, cost)
  • When you would and would not use it in production

Real-world example

In a production C# Collections application, teams apply this when handling user-facing features or integration boundaries. For example, you might use it during a sprint where reliability and observability matter—logging metrics, validating edge cases, and documenting the decision in an ADR so future developers understand why the approach was chosen.

How to explain in the interview

  1. Define the concept in one or two sentences.
  2. Context — where it fits in C# Collections architecture.
  3. Example — a specific project, bug, or performance win.
  4. Trade-off — what you gain vs what you sacrifice.

Tip: Practice aloud on Toolliyo mock interview or the Interview Q&A section before your real interview.

Permalink & share

C# Collections C# Programming Tutorial · Collections

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

What interviewers expect

  • A clear definition tied to Collections in C# Collections projects
  • Trade-offs (performance, maintainability, security, cost)
  • When you would and would not use it in production

Real-world example

In a production C# Collections application, teams apply this when handling user-facing features or integration boundaries. For example, you might use it during a sprint where reliability and observability matter—logging metrics, validating edge cases, and documenting the decision in an ADR so future developers understand why the approach was chosen.

How to explain in the interview

  1. Define the concept in one or two sentences.
  2. Context — where it fits in C# Collections architecture.
  3. Example — a specific project, bug, or performance win.
  4. Trade-off — what you gain vs what you sacrifice.

Tip: Practice aloud on Toolliyo mock interview or the Interview Q&A section before your real interview.

Permalink & share

C# Collections C# Programming Tutorial · Collections

IList<T> extends ICollection<T> and allows:

  • Indexed access (like arrays)
  • Inserting and removing at specific positions

Example:

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.

Permalink & share

C# Collections C# Programming Tutorial · Collections

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

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