【发布时间】:2018-04-29 04:48:44
【问题描述】:
我有一个使用 List 参数的构造函数。在该列表中,我有三个项目,它们是 3 个整数数组。
public HistogramLogic(List<Tuple<int[], int[], int[]>> separateRGB)
现在我想用该列表中的数组初始化三个新的整数数组。但是当我尝试这段代码时,我的新数组的索引保持为 0。
for (int i = 0; i < histogramXValues.Length; i++)
{
rArray = separateRGB.Select(obj => obj.Item1[i]).ToArray();
gArray = separateRGB.Select(obj => obj.Item2[i]).ToArray();
bArray = separateRGB.Select(obj => obj.Item3[i]).ToArray();
}
有人对如何解决这个问题有任何建议吗?
【问题讨论】:
-
我不明白“我的新数组的索引保持为 0”是什么意思。你的意思是
Count? -
@johnWu 我的意思是新数组的长度
-
您的循环会反复将值重新分配给
rArray、gArray和bArray,从而覆盖以前的值。 -
另外
separateRGB的声明似乎有点不寻常,我希望List<Tuple<int, int, int>>或Tuple<int[], int[], int[]>用于颜色列表,但您可能有一个颜色列表列表,并且您是否正在尝试有效地将第二个索引中的值提取到数组中? -
@kajacx 这绝对是一个用多个整数数组填充的 List。我的目的是从随机选择的图片中绘制单独的 R、G、B 值的直方图。因此,我遍历每个像素,在该像素内选择单独的 R、G 和 B 值。 IF 语句(在 for 循环内)将检查 R、G 和 B 值是否等于我的 X 轴值之一(0-255)。如果是这样,它将增加+1。完成所有像素后。我将在列表中设置 R、G 和 B 的 Y 轴增量值(作为单独的 int 数组)并将其传递给我的绘图类。