c# - 将值分配给二维数组并获取输出
问题描述
我正在开发一个 Windows 窗体应用程序,并且正在使用 C# 实体框架。我在数据库轨道和防御点中有两个表。
我正在尝试使用 foreach 循环这两个表并做一些方程式并将方程式(_DATIX)的输出分配给 2d 数组。这是我尝试过的无效代码:
double[,] arr = new double[db.track_776.Count(), db.defendedpoints.Count()];
foreach (var track in db.track_776.ToList())
{
foreach (var defendedPoint in db.defendedpoints.ToList())
{
DELATX = ((double)defendedPoint.Long - (double)track.TRK_LongX) * 30.8;
DELATY = ((double)defendedPoint.Lat - (double)track.TRK_LatY) * 27;
D = (int)Math.Sqrt((DELATX * DELATX) + (DELATY * DELATY));
double x = (double)track.XVelocity;
double y = (double)track.YVelocity;
S = (int)Math.Sqrt((x * x) + (y * y));
_DATIX = CalculateDefendedAreaThreatIndex((int)track.Alt,
(int)defendedPoint.DpAlt,
(int)defendedPoint.Priority, (int)defendedPoint.Range, DELATX, DELATY, D, S, x, y);
arr[db.track_776.Count(), db.defendedpoints.Count()] = _DATIX;
所有 DATIX 的输出为 0。(0 是 DATIX 的初始值)
解决方案
我忠实的朋友向我提出了这个解决方案,它奏效了。请注意(他是实体框架专家)'''
double[,] arr = new double[db.track_776.Count(), db.defendedpoints.Count()];
for (int i = 0; i < db.track_776.Count(); i++)
{
for (int j = 0; j < db.defendedpoints.Count(); j++)
{
DELATX = ((double)db.defendedpoints.ToList()[j].Long - (double)db.track_776.ToList()[i].TRK_LongX) * 30.8; // *33 to convert from second to meter
DELATY = ((double)db.defendedpoints.ToList()[j].Lat - (double)db.track_776.ToList()[i].TRK_LatY) * 27; // *33 to convert from second to meter
D = (int)Math.Sqrt((DELATX * DELATX) + (DELATY * DELATY));
double x = (double)db.track_776.ToList()[i].XVelocity;
double y = (double)db.track_776.ToList()[i].YVelocity;
S = (int)Math.Sqrt((x * x) + (y * y));
_DATIX = CalculateDefendedAreaThreatIndex((int)db.track_776.ToList()[i].Alt, (int)db.defendedpoints.ToList()[j].DpAlt,
(int)db.defendedpoints.ToList()[j].Priority, (int)db.defendedpoints.ToList()[j].Range, DELATX, DELATY, D, S, x, y);
arr[i, j] = DATIX;
}
}
'''
推荐阅读
- html - 为什么框 2 不跨越 2 行?相反,它只会空出一个空间!我需要那个盒子跨度为 2 行
- c++ - 如何返回二维数组 C++
- node.js - 如何更改 aws-lambda 结构中文件夹的权限?
- libxml2 - 使用 libxml2 writer 处理程序在根节点中创建两个兄弟节点失败
- javascript - 在 for 循环中调用 Grpc 网关
- arduino - 使用 websockets 拥有自己的物联网平台
- pine-script - 进行逆向研究
- python - super().__init__(self,name,age,gender,address) TypeError: __init__() 接受 5 个位置参数,但给出了 6 个
- python - 我可以从谷歌表运行一个 docker 容器吗?
- ios - Swift 包解析失败:二进制目标的工件下载失败:无效状态码 401