gpt4 book ai didi

c# - Linq:按计算结果过滤并重用该结果

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

我有一个集合(在 DbSet 中),我想按其属性(距离)的计算结果对其进行排序,并将其转换(重新使用距离)到不同的模型。每个条目应该只计算一次(作为一个 DbSet,它将在数据库本身中执行)。

class InputModel {
Vector3 position;
}

class OutputModel {
double distance;
}

var inputList = getInputList(); // returns IQueryable<InputModel>

var outputList = inputList
.Where( x => (){
var dist = calculateDistance( x.position );
// calculateDistance() boils down to a simple equation that could directly translated to an sql-query (when typed in statically by hand)
return dist < maxDistance;
})
.Select( x => () {
return new OutputModel {
distance = ???; // get the calculated distance somehow
})
.ToList();

我想到了两种可能的解决方案:

  1. 将数据库中的所有条目放入一个容器中,计算距离并在 foreach 循环中过滤出条目。
  2. 按距离过滤并在转换为 OutputModel 时重新计算距离。

是否可以一次完成此操作(首选是在数据库本身中进行计算)?

最佳答案

您可以执行 inputlist.where(....).select(x=>calculatedistance).select(dist=> new outputmodel)... 从我的手机评论所以无法输入完整的语句。但应该指出你正确的方向。基本上。拳头做的地方,然后选择距离。然后选择输出模型

关于c# - Linq:按计算结果过滤并重用该结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34917752/

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