gpt4 book ai didi

c# - 在linq查询返回匿名类型中将可为空的int转换为int

转载 作者:行者123 更新时间:2023-11-30 19:40:32 24 4
gpt4 key购买 nike

此处是返回匿名类型 的实体查询的简单 linq。问题是其中一个 int? 值像参数一样使用来获取另一个值 int

我知道的所有方法都行不通。请告知如何解决此问题。

public IQueryable<toursistdata> GetxTouristByCategory(string category)
{
var now = System.DateTime.MinValue;
int i;
switch (category)
{
case "arrival":
now = System.DateTime.Now.AddDays(-3);
var arrival = from a in db.xTourist
where a.ArrDate >= now && a.Room == null
select new toursistdata
{
kodt = a.Kod,
name = a.Name,
paxad = a.Paxad,
paxch = a.Paxch,
**//Here is h.Kod is int but KodH is int?**
hotel = (from h in db.Address where h.Kod = (int)a.KodH.HasValue select h.NameC).FirstOrDefault(),
room = a.Room,
arrdate = a.ArrDate,
arrtime = a.ArrTime,
arrflight = a.ArrFl,
depdate = a.DepDate,
deptime = a.Deptime,
depflight = a.DepFlight,
transfer = a.Transfer
};
return arrival;
case "inhouse":
now = System.DateTime.Today;
//return db.xTourist.AsQueryable().Where(p => p.Датапр >= now && p.Номер != null).OrderByDescending(p => p.Датапр);
default:
//return db.xTourist.AsQueryable();
}
}

最佳答案

首先,您的等号运算符中缺少一个“=”。那么,如果你想比较一个int和一个int?您可以使用 Null Coalescing 运算符 ??为 null-case 提供默认值,然后将其转换为 int:

h.Kod == (a.KodH ?? 0)

关于c# - 在linq查询返回匿名类型中将可为空的int转换为int,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23079420/

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