我真的尝试过这个,看起来很简单。
c#,使用linq。
我有一个linq查询:
var allNewStops = (from stops in rDb.DistributionStopInformations
where stops.CustomerNo == 91000 && stops.StopSignature != "" && stops.ActualServiceDate == dateToCheck
select new
{
stopName = stops.StopName,
signature = stops.StopSignature,
customerRefNumber = stops.CustomerReference,
dateOfStop = stops.ActualServiceDate,
timeOfStop = stops.ActualArrivalTime
}).Distinct();
这似乎工作正常,我需要将dateOfStop与timeOfStop结合 - 最好是在查询中,但之后也可以。
我试过了:
DateTime combined = stopinfo.dateOfStop.Add;
但添加声明它是日期时间的未知方法
它确实显示dateOfStop是DateTime,timeOfStop是TimeSpan。
我已经尝试了大约4种不同的组合,我能想到的一切。
我做错了什么?
谢谢!
乔
答案 0 :(得分:1)
从我看到的情况看来,你似乎试图错误地使用Add,因为Add需要一个参数(一个无参数的版本不存在)。除此之外,由于我不知道确切的数据布局,我确保在它们是对象的情况下进行扩展转换,但如果它们已经是相应的数据类型,那么它们可以在没有(DateTime)和(TimeSpan)的情况下使用:
var allNewStops = (from stops in rDb.DistributionStopInformations
where stops.CustomerNo == 91000 && stops.StopSignature != "" && stops.ActualServiceDate == dateToCheck select stops)
.AsEnumerable().Select(stops => new {
stopName = stops.StopName,
signature = stops.StopSignature,
customerRefNumber = stops.CustomerReference,
dateOfStop = stops.ActualServiceDate,
timeOfStop = stops.ActualArrivalTime,
combinedStop = ((DateTime)stops.ActualServiceDate).Add((TimeSpan)stops.ActualArrivalTime)
}).Distinct();
答案 1 :(得分:0)
DateTime aNewDateTime = theOldDate.Add(aTimeSpan);
答案 2 :(得分:0)
如果您的dateOfStop
来自DateTime类型且timeOfStop
是TimeSpan,那么添加它应该没有问题:
DateTime combined = dateOfStop.Add(timeOfStop);