Disons que j'ai une classe Customer
qui a une propriété FirstName
. Ensuite, j'ai un List<Customer>
.
LINQ peut-il être utilisé pour trouver si la liste contient un client Firstname = 'John'
dans une seule déclaration. Comment?
Disons que j'ai une classe Customer
qui a une propriété FirstName
. Ensuite, j'ai un List<Customer>
.
LINQ peut-il être utilisé pour trouver si la liste contient un client Firstname = 'John'
dans une seule déclaration. Comment?
Réponses:
LINQ définit une méthode d'extension parfaite pour résoudre ce problème exact:
using System.Linq;
...
bool has = list.Any(cus => cus.FirstName == "John");
assurez-vous de référencer System.Core.dll, c'est là que réside LINQ.
La réponse de zvolkov est parfaite pour savoir s'il existe un tel client. Si vous devez utiliser le client par la suite, vous pouvez faire:
Customer customer = list.FirstOrDefault(cus => cus.FirstName == "John");
if (customer != null)
{
// Use customer
}
Je sais que ce n'est pas ce que vous demandiez, mais je pensais que j'aurais anticipé une question de suivi :) (Bien sûr, cela ne trouve que le premier de ces clients ... pour tous les trouver, utilisez simplement un where
clause normale .)
Une option pour la question suivante (comment trouver un client qui pourrait avoir un certain nombre de prénoms):
List<string> names = new List<string>{ "John", "Max", "Pete" };
bool has = customers.Any(cus => names.Contains(cus.FirstName));
ou pour récupérer le client de csv de liste similaire
string input = "John,Max,Pete";
List<string> names = input.Split(',').ToList();
customer = customers.FirstOrDefault(cus => names.Contains(cus.FirstName));
customerList.Any(x=>x.Firstname == "John")
List<Customer> list = ...;
Customer john = list.SingleOrDefault(customer => customer.Firstname == "John");
john sera nul si aucun client n'existe avec un prénom "John".
Essayez ceci, j'espère que cela vous aidera.
if (lstCustumers.Any(cus => cus.Firstname == "John"))
{
//TODO CODE
}