提问人:luprok 提问时间:6/22/2022 最后编辑:McNetsluprok 更新时间:6/22/2022 访问量:188
Func 表达式使用的 C# OrderBy
C# OrderBy used by Func Expression
问:
嗨,我对这个表达式有问题:
- 我正在为 OrderBy(orderby(first from list).thenby(second from list)) 创建两个表达式的列表,但在某些情况下 Recipient 可以为 null。
List<Expression<Func<Data, dynamic>>> orderingExpression = new List<Expression<Func<Data, dynamic>>>();
orderingExpression.Add(x => (x.Inhalt.Recipient == null && x.Inhalt.Recipient.Address == null) ? null : x.Inhalt.Recipient.Address.Nummer);
orderingExpression.Add(x => (x.Inhalt.Recipient == null && x.Inhalt.Recipient.Address == null) ? null : x.Inhalt.Recipient.Address.Street);
- 稍后在代码中,我像这样使用它:
datatemp = datatemp.OrderBy(orderingExpression.First()).ThenBy(orderingExpression.Last());
但是,即使我在步骤 1 中对两个表达式进行了 null 检查,仍然得到“对象引用未设置为实例” 具有 Recipient 的其他值已正确排序。
我尝试使用字符串。三元运算符中的空而不是 null,但仍然是同样的问题。
我需要以不同的方式编写 null 检查吗?
答: 暂无答案
评论
Recipient
Recipient.Address
Recipient
dynamic
orderingExpression.Add(x => x?.Inhalt?.Recipient?.Address?.Nummer ?? xxx);orderingExpression.Add(x => x?.Inhalt?.Recipient?.Address?.Street ?? yyy);
x.Inhalt.Recipient != null && x.Inhalt.Recipient.Address != null