将2d int数组解析为BubbleDataPoints列表。

问题描述 投票:0回答:1

我有一个利用网格的算法,它是通过C#中的int[,]来实现的。我想在Blazor中使用blazor chart.Js的Bubble chart来绘制输出图。我希望根据int的值来创建不同的数据集。0 = emptyignore,1 = 特定对象类型,2 = 特定对象类型。

我在挑选数据并将其转换为图表所期望的BubbleDataPoint(x,y,r)时遇到了问题。我希望x,y对应于数组索引,例如graph[1,1]=1将是bubblebledatapoint(1,1,1)等等。我在我的类中实现了一个IEnumerable方法,这样我就可以在int值上使用foreach或.select,但不知道如何获得数组索引。

public IEnumerable<int> GridValues()
        {
            for (int x = 0; x < grid.GetLength(0); x++)
            {
                for (int y = 0; x < grid.GetLength(1); y++)
                {
                    yield return grid[x,y];
                }
            }
        }

谢谢。

c# asp.net-core chart.js blazor blazor-server-side
1个回答
0
投票

好吧,所以对于任何感兴趣的人,我采用了这种方法。我最初想避免在数组上循环,直到我意识到二维数组没有实现IEnumerable,我正在做一个半途而废的方法,但后来只是决定用这个方法。

public IEnumerable<BubbleDataPoint> GridToDataPoints()
        {
            for (int x = 0; x < grid.GetLength(0); x++)
            {
                for (int y = 0; y < grid.GetLength(1); y++)
                {
                    yield return new BubbleDataPoint(Convert.ToDouble(x), Convert.ToDouble(y), Convert.ToDouble(grid[x, y]));
                }
            }
        } 
© www.soinside.com 2019 - 2024. All rights reserved.