Customer
プロパティを持つクラスがあるとしますFirstName
。それから私は持っていList<Customer>
ます。
LINQを使用して、リストFirstname = 'John'
に1つのステートメントで顧客が含まれているかどうかを確認できますか?どのように?
Customer
プロパティを持つクラスがあるとしますFirstName
。それから私は持っていList<Customer>
ます。
LINQを使用して、リストFirstname = 'John'
に1つのステートメントで顧客が含まれているかどうかを確認できますか?どのように?
回答:
LINQは、この正確な問題を解決するのに最適な拡張メソッドを定義します。
using System.Linq;
...
bool has = list.Any(cus => cus.FirstName == "John");
LINQが存在するSystem.Core.dllを参照してください。
zvolkovの答えは、そのような顧客がいるかどうかを調べるのに最適です。後で顧客を使用する必要がある場合は、次のことができます。
Customer customer = list.FirstOrDefault(cus => cus.FirstName == "John");
if (customer != null)
{
// Use customer
}
これはあなたが求めていたものではないことはわかっていますが、私は後続の質問を回避したいと思っていました:)(もちろん、これは最初のそのような顧客のみを見つけます...通常のwhere
条項。)
フォローアップ質問の1つのオプション(名をいくつでも持つ可能性のある顧客を見つける方法):
List<string> names = new List<string>{ "John", "Max", "Pete" };
bool has = customers.Any(cus => names.Contains(cus.FirstName));
または同様のリストのcsvから顧客を取得する
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」の名を持つ顧客が存在しない場合、johnはnullになります。
別の可能性
if (list.Count(customer => customer.Firstname == "John") > 0) {
//bla
}
これを試してみてください。
if (lstCustumers.Any(cus => cus.Firstname == "John"))
{
//TODO CODE
}