Writers logo

Understanding LINQ in C#: When to Use First() vs FirstOrDefault()

Explore the functionalities of First() and FirstOrDefault() in LINQ to handle data sequences effectively. This guide includes syntax, examples, and tips to choose the right method for your C# programming needs, ensuring robust and error-free code.

By Sukhpinder SinghPublished about a year ago 2 min read

Learning Objectives

  • What is the First() method in LINQ?
  • What is the FirstOrDefault() method in LINQ?
  • Choosing between First() and FirstOrDefault().

Prerequisites

  • Familiar with C# Programming language.
  • Brief understanding of LINQ.

Getting Started

The article demonstrates two different methods namely First() and FirstOrDefault() to fetch the first element of the sequence.

What is the First() method?

The First() method is utilized to fetch the first element of the sequence with an option of filter condition using lambda expressions.

The basic syntax is

First(x => x.columnName == value);

The aforementioned method may throw an InvalidOperationException

  • If no elements satisfy the expression condition
  • If the source is null

Recommendation: Make sure the sequence contains at least one element before using the First() method.

Example

Consider a table UserDetails with columns (ID, Name) with values in rows from (1 to 10).

var result = dc.UserDetails.First(x => x.ID == 1);

// Output: ID: 1, Name: Manish Dubey

However, if we try to fetch data for ID=13 which does not exist in the UserDetails table will throw an InvalidOperationException.

var result = dc.UserDetails.First(x => x.ID == 13);

// Throws InvalidOperationException: Sequence contains no elements

What is the FirstOrDefault() method

The FirstOrDefault() method is very similar to the First() method but it will return default values if no elements match the conditional expression.

The default value is null for all reference types and 0 for value type variables.

The basic syntax is

FirstOrDefault(x => x.columnName == value);

Example

Consider a table UserDetails with columns (ID, Name) with values in rows from (1 to 10).

var result = dc.UserDetails.FirstOrDefault(x => x.ID == 1);

// Output: ID: 1, Name: Manish Dubey

However, if we try to fetch data for ID=13 which does not exist in the UserDetails table it will return a default value as null.

var result = dc.UserDetails.FirstOrDefault(x => x.ID == 13);

// null

Choosing between First() and FirstOrDefault()

Use the First() method when the requirement is to make sure that the result should NOT be empty.

Use the FirstOrDefault() method to add the empty checks as part of your logic for the sequence.

C# Programming🚀

Thank you for being a part of the C# community! More content at C# Programming

AchievementsCommunityGuidesPublishingVocalWriting ExerciseWriter's Block

About the Creator

Sukhpinder Singh

Reader insights

Be the first to share your insights about this piece.

How does it work?

Add your insights

Comments

There are no comments for this story

Be the first to respond and start the conversation.

Sign in to comment

    Find us on social media

    Miscellaneous links

    • Explore
    • Contact
    • Privacy Policy
    • Terms of Use
    • Support

    © 2026 Creatd, Inc. All Rights Reserved.