我有课

public class ABCImport
{
  List<string> SegmentationList;

}


现在我有了ABCImport清单。

var ABCImportList=New List<ABCImport>();


我需要ABCImportList列表中来自SegmentationList的唯一字符串而没有空字符串。让我说ABCImportList拥有50条ABCImport记录,并且每个ABCImport导入都具有SegmentationList,它可以在每个ABCImport中重复。因此,我需要所有细分列表中的唯一字符串。

这是我到目前为止的内容:

ABCImportList
    .Where(
        x => x.SegmentationList
            .Where(s => !string.IsNullOrWhiteSpace(s))
    )
    .Distinct()
    .ToList()

最佳答案

您可以使用SelectMany()方法,该方法允许您指定一个集合,以将所有这些集合合并为一个结果。在您的情况下,示例的SegmentationList属性的值:

var segmentationList = ABCImportList.SelectMany(x => x.SegmentationList.Where(s => !string.IsNullOrEmpty(s)
                                                                                && !string.IsNullOrWhiteSpace(s))
                                    .Distinct()
                                    .ToList();

08-07 15:45