2012-03-12 8 views

答えて

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(); 

productListProductのリストがすでにある場合は、select newを使用してProductオブジェクトの新しいインスタンスを再構築しないでください。

あなたは、単に行うことができます:

var product = productList.SingleOrDefault(p => p.Id == ...);