我有这堂课:
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);
问题是如果第二个项目的列表是空的,我会丢失第一个项目。如果列表为空或为空,我想使用一些“(默认)”值。我想DefaultIfEmpty
是关键,但不知道如何将其合并到现有查询中。