私はこのクラスを持っています:
class OriginalClass {
string FirstItem;
List<string> ListOfSecondItems;
}
あるクラスのリストを別のクラスのリストに変換するか、このクラスを新しいクラスに「フラット化」したいと思います。
class FlattenedClass {
string First;
string Second;
}
このLINQ式を使用して、次の式に変換しています。
OriginalClass original;
var flattened = from Item in original
from secondItem in item.ListOfSecondItems
select new FlattenedClass(item.FirstItem, secondItem);
問題は、2番目のアイテムのリストが空の場合、最初のアイテムを失うことです。リストがnullまたは空の場合に使用する「(デフォルト)」値が必要です。重要だと思いDefaultIfEmpty
ますが、既存のクエリに組み込む方法がわかりません。