似乎在尝试为我的 linq 变量设置类时遇到问题:
下面是操作数据库数据的类:
public class Result
{
public bool LongerThan10Seconds { get; set; }
public int Id { get; set; }
public DateTime CompletionTime { get; set; }
public double longitude { get; set; }
public double latitude { get; set; }
}
然后我使用这个 LINQ 语句从特定数据库获取数据:
foreach (var query in data.AssetStatusHistories
.Where(x => x.TimeStamp <= ft)
.Where(x => x.AssetID == guid))
{
if (lastResult != null)
{
if ((query.TimeStamp - lastResult.CompletionTime).TotalSeconds > 10)
{
dataResults.Add(new Result() { Id = query.ID,
longitude = query.Longitude,
latitude = query.Latitude });
}
<b>lastResult = query; // <-- Error Is Here</b>
}
}
错误是 lastResult = Query,我一直收到 Cannot Implicitly Convert "Project.Data"to "Project.Result"有人有推荐的解决方案吗?
我已经看到一些关于此错误但不是专门针对 LINQ 的错误。
它准确地告诉你它的意思:你不能转换Project.Data
至 Project.Result
.
data.AssetStatusHistories.Where(x => x.TimeStamp <= ft)
.Where(x => x.AssetID == guid)
不返回 Project.Result
的集合对象,但类型为 Project.Data
的对象.
编辑
如果你的 lastResult 是 Result
类型,我假设你可以输入:
lastResult = new Result(){Id = query.ID,
longitude = query.Longitude,
latitude = query.Latitude });
但在那种情况下它不会起作用。这不是与 linq 相关的问题。你的lastResult
对象被分配到别处。如果你想分配一个新的 lastResult
最后的对象,你想从哪里得到它是CompletionTime
属性(property)值(value)从何而来?在我粘贴的代码中没有将它分配到任何地方。
我是一名优秀的程序员,十分优秀!