簡體   English   中英

將值分配給二維數組並獲取 output

[英]Assign values to 2d array and getting the output

我正在開發 Windows Forms 應用程序,並且正在使用實體框架 C#。 我在數據庫軌道和防御點中有兩個表。

我正在嘗試使用 foreach 循環這兩個表並做一些方程式並將方程式(_DATIX)的 output 分配給二維數組。 這是我嘗試過的無效代碼:

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,output 為 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;
            }
        }

'''

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM