0

リストBが空の場合、LINQ EVENを使用してリストAとリストBから要素を取得する方法(リストAの要素を返しますが、リストBの要素は空になります)

アイデアは、リスト A と B の要素に基づいて単一の匿名オブジェクトを再作成できるようにすることです。

From elemListA In data.ListA_
From elemListB In elemListA.ListB _
   Select New With { _
         .ElementA = elemListA.ElementA, _
         .ElementB = elemListA.ElementB, _
         .ElementC = elemListB.ElementA, _
         .elementD = elemListB.ElementB, _
   }).ToList()

問題は、ListB が空の場合にクラッシュすることです。もう 1 つの問題は、where 句によって除外されているため、ListA の要素が含まれない場所を配置すると、それらが必要になることです。

私は結合を行いますが、問題は2つのオブジェクト間に関係がないことです.ListAの要素がListBを持っていることを除いて..

4

2 に答える 2

0

あなたが説明しているのは左外部結合のようです。Microsoftは、 LINQ でこれを行うためのチュートリアルを作成しました。

質問に具体的に対処するには、null 値を確認する必要があります。この例では、Microsoft は三項演算子を使用して、値が null の場合に空の文字列を返します。

var query = from person in people
                    join pet in pets on person equals pet.Owner into gj
                    from subpet in gj.DefaultIfEmpty()
                    select new { person.FirstName, PetName = (subpet == null ?    String.Empty : subpet.Name) };
于 2013-04-24T19:00:24.907 に答える