我有一个利用网格的算法,它是通过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];
}
}
}
谢谢。
好吧,所以对于任何感兴趣的人,我采用了这种方法。我最初想避免在数组上循环,直到我意识到二维数组没有实现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]));
}
}
}