Bird
Raised Fist0

Given a list of objects List<object> items = new() { 1, "two", 3, null, 4.5 };, which code snippet correctly sums only the integer values using type checking patterns?

hard🚀 Application Q15 of Q15
C Sharp (C#) - Polymorphism and Abstract Classes
Given a list of objects List<object> items = new() { 1, "two", 3, null, 4.5 };, which code snippet correctly sums only the integer values using type checking patterns?
Aint sum = 0; foreach (var item in items) { if (item is int n) sum += n; } Console.WriteLine(sum);
Bint sum = 0; foreach (int n in items) { sum += n; } Console.WriteLine(sum);
Cint sum = 0; foreach (var item in items) { if (item is double d) sum += (int)d; } Console.WriteLine(sum);
Dint sum = 0; foreach (var item in items) { sum += (int)item; } Console.WriteLine(sum);
Step-by-Step Solution
Solution:
  1. Step 1: Understand the list contents

    The list has integers, a string, null, and a double. We want to sum only integers.
  2. Step 2: Check each option for correct type filtering

    int sum = 0; foreach (var item in items) { if (item is int n) sum += n; } Console.WriteLine(sum); uses if (item is int n) to add only integers. int sum = 0; foreach (int n in items) { sum += n; } Console.WriteLine(sum); tries to cast all items to int in foreach, causing error. int sum = 0; foreach (var item in items) { if (item is double d) sum += (int)d; } Console.WriteLine(sum); sums doubles cast to int, which is incorrect. int sum = 0; foreach (var item in items) { sum += (int)item; } Console.WriteLine(sum); casts all items to int without checking, causing runtime errors.
  3. Final Answer:

    int sum = 0; foreach (var item in items) { if (item is int n) sum += n; } Console.WriteLine(sum); -> Option A
  4. Quick Check:

    Use is int var to filter integers safely [OK]
Quick Trick: Use if (item is int n) to sum integers safely [OK]
Common Mistakes:
MISTAKES
  • Casting without checking causing exceptions
  • Summing wrong types like double or string
  • Assuming foreach int works on object list

Want More Practice?

15+ quiz questions · All difficulty levels · Free

Free Signup - Practice All Questions
More C Sharp (C#) Quizzes