Di 'che ho una lezione Customer
che ha una proprietà FirstName
. Quindi ho un List<Customer>
.
LINQ può essere utilizzato per scoprire se l'elenco ha un cliente con Firstname = 'John'
in una singola istruzione .. come?
Di 'che ho una lezione Customer
che ha una proprietà FirstName
. Quindi ho un List<Customer>
.
LINQ può essere utilizzato per scoprire se l'elenco ha un cliente con Firstname = 'John'
in una singola istruzione .. come?
Risposte:
LINQ definisce un metodo di estensione perfetto per risolvere questo problema esatto:
using System.Linq;
...
bool has = list.Any(cus => cus.FirstName == "John");
assicurati di fare riferimento a System.Core.dll, è qui che vive LINQ.
La risposta di zvolkov è quella perfetta per scoprire se esiste un cliente del genere. Se in seguito è necessario utilizzare il cliente, è possibile:
Customer customer = list.FirstOrDefault(cus => cus.FirstName == "John");
if (customer != null)
{
// Use customer
}
So che questo non è quello che mi stavi chiedendo, ma ho pensato di anticipare una domanda successiva :) (Certo, questo trova solo il primo cliente del genere ... per trovarli tutti, basta usare un where
clausola normale .)
Un'opzione per la seguente domanda (come trovare un cliente che potrebbe avere un numero qualsiasi di nomi):
List<string> names = new List<string>{ "John", "Max", "Pete" };
bool has = customers.Any(cus => names.Contains(cus.FirstName));
o per recuperare il cliente da CSV di un elenco simile
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 sarà nullo se non esiste alcun cliente con un nome di "John".
Un'altra possibilità
if (list.Count(customer => customer.Firstname == "John") > 0) {
//bla
}
Prova questo, spero che ti aiuti.
if (lstCustumers.Any(cus => cus.Firstname == "John"))
{
//TODO CODE
}