Home > DeveloperSection > Forums > Default Value when using SingleOrDefault()
Manoj Bhatt
Manoj Bhatt

Total Post:153

Points:1079
Posted on    March-17-2015 6:32 AM

 .NET C#  LINQ 
Ratings:


 1 Reply(s)
 582  View(s)
Rate this:

I have a simple class like:

class Color

{

    public int ID { get; set; }

    public string ColorName { get; set; }

}

and then create a collection of these objects:

List<Color> ColorList;

I'd like to then query this collection with LINQ.

Color selected = ColorList.SingleOrDefault(a => a.ID == someVariable);

My collection will have several colors, all with unique IDs, and one color that I'd want to be the default. What I'm looking for is the ability to specify what is returned when someVariable does not match any ID in the collection. Is this possible, or does SingleOrDefault only return null when a match isn't found?



Pravesh Singh

Total Post:411

Points:2881
Posted on    March-17-2015 7:20 AM

Use ?? (null coalescing operator)

Color selected = ColorList.SingleOrDefault(a => a.ID == someVariable) ??

                          new Color {Id = 1234, ColorName = "Blue"}; //Default value


Don't want to miss updates? Please click the below button!

Follow MindStick