我有问题,可能有也可能没有问题组
如果所有问题都没有question_group,如果我使用默认值为空,如下所示:
question_group defaultQuestion = new question_group {question_group_id = Guid.Empty};
questions.Select(x => x.question_group).DefaultIfEmpty(defaultQuestion).Distinct();
Run Code Online (Sandbox Code Playgroud)
我不应该IEnumerable<question_group>只包含我定义的默认question_group吗?我得到了......我在这里错过了什么?
我认为DefaultIfEmpty与你的期望不同.如果您的问题没有问题组,则可能这意味着其问题组为空.DefaultIfEmpty只对空可枚举产生影响(即元素数为零).包含一些空值的可枚举不为空.
我想您可能想要做的是删除所有null的问题组,然后检查枚举是否为空.您可能想要尝试这样的事情:
var questionGroups = questions.Select(x => x.question_group)
.Where(x => x != null)
.DefaultIfEmpty(defaultQuestion)
.Distinct();
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8199 次 |
| 最近记录: |