Master technical and career interviews with structured answers—short definition, real examples, pitfalls, and how to answer in 60–90 seconds.
Short answer: OOP is a programming paradigm that organizes software around objects, which contain data (fields/properties) and behavior (methods/functions). Helps model real-world entities and their interactions. Say thi…
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: A blueprint or template for creating objects. Defines properties (data) and methods (behavior) that the objects will have. public class Car Example code { public string Model { get; set; } public void Start…
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: 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: 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: 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: An instance of a class with actual values. Represents a real-world entity in memory. Car myCar = new Car(); // Object of Car class Example code An instance of a class with actual values. Represents a real-w…
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: Feature Class Object Definition Blueprint/Template Instance of a class Memory Does not occupy memory Occupies memory Example class Car { } Car myCar = new Car(); Real-world example (ShopNest) Think of ShopN…
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: A special method used to initialize objects when they are created. Has the same name as the class and no return type. public class Car Example code { public string Model; public Car(string model) { Model =…
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: A method called automatically when an object is destroyed. Used to release resources before the object is removed from memory. In C#, destructors are rarely needed due to garbage collection. ~Car() { Consol…
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: The practice of hiding internal details of a class and exposing only necessary functionality through access modifiers and properties. private int speed; Example code public int Speed { get { return speed; }…
Short answer: Hiding implementation details and showing only the essential features of an object. Achieved using abstract classes and interfaces. abstract class Vehicle { Example code public abstract void Start(); } Real…
Short answer: Capacity is the number of elements the list can hold before resizing. It is greater than or equal to Count. Example code list.Capacity = 100; // Optional performance tuning Real-world example (ShopNest) In…
Short answer: Mechanism where a class (derived/child) inherits properties and methods from another class (base/parent). Promotes code reusability. class Car : Vehicle Example code { public override void Start() { Console…
Short answer: Property Meaning Count Number of elements currently in the list Capacit Total allocated slots (memory reserved) Example code Console.WriteLine($"Count: {list.Count}, Capacity: {list.Capacity}"); R…
Short answer: Ability of an object to take multiple forms. Types: Compile-time (method overloading) Run-time (method overriding) Vehicle v = new Car(); v.Start(); // Run-time polymorphism Real-world example (ShopNest) Ch…
Short answer: Car object: Class → Car Objects → myCar, yourCar Properties → Color, Model, Speed Methods → Start(), Stop(), Accelerate() Shows encapsulation, inheritance (e.g., ElectricCar : Car), and polymorphism in acti…
C# OOP C# Programming Tutorial · OOP
Short answer: OOP is a programming paradigm that organizes software around objects, which contain data (fields/properties) and behavior (methods/functions). Helps model real-world entities and their interactions.
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# OOP C# Programming Tutorial · OOP
Short answer: A blueprint or template for creating objects. Defines properties (data) and methods (behavior) that the objects will have. public class Car
{
public string Model { get; set; }
public void Start() { Console.WriteLine("Car started"); }
}
Think of ShopNest’s Product, Cart, and Order classes: each object holds data + behavior, so pricing rules stay next to the data they use.
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: 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: 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: 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# OOP C# Programming Tutorial · OOP
Short answer: An instance of a class with actual values. Represents a real-world entity in memory. Car myCar = new Car(); // Object of Car class
An instance of a class with actual values. Represents a real-world entity in memory. Car myCar = new Car(); // Object of Car class
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# OOP C# Programming Tutorial · OOP
Short answer: Feature Class Object Definition Blueprint/Template Instance of a class Memory Does not occupy memory Occupies memory Example class Car { } Car myCar = new Car();
Think of ShopNest’s Product, Cart, and Order classes: each object holds data + behavior, so pricing rules stay next to the data they use.
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# OOP C# Programming Tutorial · OOP
Short answer: A special method used to initialize objects when they are created. Has the same name as the class and no return type. public class Car
{
public string Model;
public Car(string model) { Model = model; }
}
Car car = new Car("Tesla");
Think of ShopNest’s Product, Cart, and Order classes: each object holds data + behavior, so pricing rules stay next to the data they use.
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# OOP C# Programming Tutorial · OOP
Short answer: A method called automatically when an object is destroyed. Used to release resources before the object is removed from memory. In C#, destructors are rarely needed due to garbage collection. ~Car() { Console.WriteLine("Car object destroyed"); }
Think of ShopNest’s Product, Cart, and Order classes: each object holds data + behavior, so pricing rules stay next to the data they use.
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# OOP C# Programming Tutorial · OOP
Short answer: The practice of hiding internal details of a class and exposing only necessary functionality through access modifiers and properties. private int speed;
public int Speed
{ get { return speed; } set { speed = value; }
}
ShopNest’s Order keeps _items private and exposes AddItem() so totals stay correct—callers cannot put a negative quantity directly into the list.
C# OOP C# Programming Tutorial · OOP
Short answer: Hiding implementation details and showing only the essential features of an object. Achieved using abstract classes and interfaces. abstract class Vehicle {
public abstract void Start();
}
Checkout calls IPaymentGateway.Charge(). Razorpay and Stripe adapters implement the same interface, so ShopNest can switch gateways without rewriting the order service.
C# Collections C# Programming Tutorial · Collections
Short answer: Capacity is the number of elements the list can hold before resizing. It is greater than or equal to Count.
list.Capacity = 100; // Optional performance tuning
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# OOP C# Programming Tutorial · OOP
Short answer: Mechanism where a class (derived/child) inherits properties and methods from another class (base/parent). Promotes code reusability. class Car : Vehicle
{
public override void Start() { Console.WriteLine("Car started");
}
}
ShopNest has a base PaymentMethod with virtual decimal Fee(). UpiPayment and CardPayment override the fee logic without changing the checkout caller.
C# Collections C# Programming Tutorial · Collections
Short answer: Property Meaning Count Number of elements currently in the list Capacit Total allocated slots (memory reserved)
Console.WriteLine($"Count: {list.Count}, Capacity: {list.Capacity}");
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# OOP C# Programming Tutorial · OOP
Short answer: Ability of an object to take multiple forms. Types: Compile-time (method overloading) Run-time (method overriding) Vehicle v = new Car(); v.Start(); // Run-time polymorphism
Checkout calls IPaymentGateway.Charge(). Razorpay and Stripe adapters implement the same interface, so ShopNest can switch gateways without rewriting the order service.
C# OOP C# Programming Tutorial · OOP
Short answer: Car object: Class → Car Objects → myCar, yourCar Properties → Color, Model, Speed Methods → Start(), Stop(), Accelerate() Shows encapsulation, inheritance (e.g., ElectricCar : Car), and polymorphism in action.
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.