2

I have the following code to get values from the list.

GetList().SingleOrDefault(x => x.Key == "MyKey").MyValue;

When there is Key property with value MyKey in a list it is working fine but when there is not Key property with value MyKey in a list it is throwing an NullReferenceException. How can I return null value instead of exception.

System.NullReferenceException
  HResult=0x80004003
  Message=Object reference not set to an instance of an object.

3 Answers 3

7

Use ?. and ?[] null-conditional Operators. It tests the value of the left-hand operand for null before performing a member access (?.) or index (?[]) operation; returns null if the left-hand operand evaluates to null.

GetList().SingleOrDefault(x => x.Key == "MyKey")?.MyValue;
Sign up to request clarification or add additional context in comments.

Comments

2

You can use below code

var result = GetList().SingleOrDefault(x => x.Key == "MyKey");
if(result != null)
{
  //Add your logic
}

Comments

1

More safe way to handle the Null in the LINQ.

GetList().Where(x => x.Key == "MyKey").Select(S=>S.MyValue).SingleOrDefault();

1 Comment

Hi Kalpesh can you explain how this code handle the null exception

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.