gpt4 book ai didi

c# - LINQ 不能隐式转换

转载 作者:太空宇宙 更新时间:2023-11-03 21:36:40 25 4
gpt4 key购买 nike

似乎在尝试为我的 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.DataProject.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)从何而来?在我粘贴的代码中没有将它分配到任何地方。

关于c# - LINQ 不能隐式转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21406810/

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