Searching if value exists in a list of objects using Linq
Say I have a class Customer
which has a property FirstName
. Then I have a List<Customer>
.
Can LINQ be used to find if the list has a customer with Firstname = 'John'
in a single statement.. how?
LINQ defines an extension method that is perfect for solving this exact problem:
using System.Linq;
...
bool has = list.Any(cus => cus.FirstName == "John");
make sure you reference System.Core.dll, that's where LINQ lives.
zvolkov's answer is the perfect one to find out if there is such a customer. If you need to use the customer afterwards, you can do:
Customer customer = list.FirstOrDefault(cus => cus.FirstName == "John");
if (customer != null)
{
// Use customer
}
I know this isn't what you were asking, but I thought I'd pre-empt a follow-on question :) (Of course, this only finds the first such customer... to find all of them, just use a normal where
clause.)