Katakanlah saya memiliki kelas Customer
yang memiliki properti FirstName
. Lalu aku punya List<Customer>
.
Dapatkah LINQ digunakan untuk mengetahui apakah daftar tersebut memiliki pelanggan dengan Firstname = 'John'
satu pernyataan .. bagaimana?
Katakanlah saya memiliki kelas Customer
yang memiliki properti FirstName
. Lalu aku punya List<Customer>
.
Dapatkah LINQ digunakan untuk mengetahui apakah daftar tersebut memiliki pelanggan dengan Firstname = 'John'
satu pernyataan .. bagaimana?
Jawaban:
LINQ mendefinisikan metode ekstensi yang sempurna untuk menyelesaikan masalah ini:
using System.Linq;
...
bool has = list.Any(cus => cus.FirstName == "John");
pastikan Anda merujuk System.Core.dll, di situlah LINQ tinggal.
Jawaban zvolkov adalah jawaban yang tepat untuk mencari tahu apakah ada pelanggan seperti itu. Jika Anda perlu menggunakan pelanggan setelah itu, Anda dapat melakukan:
Customer customer = list.FirstOrDefault(cus => cus.FirstName == "John");
if (customer != null)
{
// Use customer
}
Saya tahu ini bukan yang Anda tanyakan, tetapi saya pikir saya akan menjawab pertanyaan lanjutan :) (Tentu saja, ini hanya menemukan pelanggan pertama ... untuk menemukan semuanya, gunakan saja where
klausa normal .)
Satu opsi untuk pertanyaan tindak lanjut (bagaimana menemukan pelanggan yang mungkin memiliki sejumlah nama depan):
List<string> names = new List<string>{ "John", "Max", "Pete" };
bool has = customers.Any(cus => names.Contains(cus.FirstName));
atau untuk mengambil pelanggan dari csv dari daftar serupa
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 akan menjadi nol jika tidak ada pelanggan dengan nama depan "John".
Coba ini, saya harap ini membantu Anda.
if (lstCustumers.Any(cus => cus.Firstname == "John"))
{
//TODO CODE
}