gpt4 book ai didi

c# - LINQ 的三元运算符问题

转载 作者:太空宇宙 更新时间:2023-11-03 17:12:35 47 4
gpt4 key购买 nike

我在处理这条三元线时遇到了麻烦:

var userFromContext = IsOwner ? db.Owners.Where(o => o.UserName == username) 
: db.Users.Where(u => u.UserName == username);

它给我这个错误信息:

无法确定条件表达式的类型,因为 System.LINQ.IQueryable<Owners> 之间没有隐式转换和 System.LINQ.IQueryable<Users> .

如果我将它分配给 var 变量,它为什么要关心?

最佳答案

因为变量必须是某种类型。

var”并不意味着“untyped”。它的意思是“亲爱的编译器,请根据我分配给它的表达式找出这个变量的类型”。

为了做到这一点,编译器必须首先了解表达式的类型,但它不能这样做,因为你的三元运算符的两个分支属于不同的类型。

关于c# - LINQ 的三元运算符问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8178292/

47 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com