オブジェクトをリストに入れたい。私は、私はあなたがより賢明な「方法」-syntax代わりのクエリ構文を使用することができVAR製品に直接リストからオブジェクトを取得する方法
0
A
答えて
3
オブジェクトを取得する必要があるコード
List<Product> productList = GetList();
var product = (from p in productList
where p.Id == "xyz"
select new Product()
{
Id = p.Id,
-,
-
});
foreach (var p in product)
{
//some code
}
を次のようしています。
var product = productList.SingleOrDefault(p => p.Id == "xyz");
編集:あなたが行っている要素を取得するために使用できるいくつかの方法があります。
.SingleOrDefault()
あなたが探しているアイテムを見つけようとします。あなたの式に一致するオブジェクトがない場合はnull(デフォルト)を返します。
.Single()
は、オブジェクトが見つからない場合は例外をスローする点を除き、同じことを行います。
.FirstOrDefault()
は、式に一致するオブジェクトのリストを取得し、最初のものを取得します。 Id xyz
のオブジェクトが複数ある場合は、.Single()
と.SingleOrDefault()
の両方が例外をスローします。
.First()
は、.FirstOrDefault()
のように機能しますが、探しているものが見つからない場合は.Single()
と同様に例外がスローされます。
0
List<Product> productList = GetList();
var product = (from p in productList
where p.Id == "xyz"
select new Product()
{
Id = p.Id,
-,
-
}).SingleOrDefault();
0
.SingleOrDefault()
または.Single()
のいずれかを使用できます。
var product = (from p in productList
where p.Id == "xyz"
select new Product()
{
Id = p.Id,
-,
-
}).Single();
productList
がProduct
のリストがすでにある場合は、select new
を使用してProduct
オブジェクトの新しいインスタンスを再構築しないでください。
あなたは、単に行うことができます:
var product = productList.SingleOrDefault(p => p.Id == ...);