从列表数组中访问列表元素

时间:2017-02-20 03:27:12

标签: c# arrays list

< p>我有以下问题。我制作了一系列清单:< / p> < pre>< code> public List< float> [,] translatedtexture = new List< float> [8,8]; < /代码>< /预> < p>这是一个二维数组,它在每个单元格中保存列表,对吗?< / p> < p>稍后我会这样做:< / p> < pre>< code> translatedtexture [i,j] = new List< float>(){0.0F,0.0F,0.0F,0.0F}; < /代码>< /预> < p>我正在做的是基本上在数组单元格[i,j]中创建一个浮点列表。 < / p为H. < p>稍后我需要像这样应用这些浮点数:< / p> < pre>< code> newtexture.SetPixel(i,j,new Color(HERE:translatedtexture [i,j] list.r,HERE:translatedtexture [i,j] list.g,HERE:translatedtexture [i,j ] list.b,HERE:translatedtexture [i,j] list.a); < /代码>< /预> < p>但问题是,我不知道从该特定单元格中的列表中提取值的语法。我已经尝试了一切,浏览了论坛,我无法找到答案。 任何帮助将不胜感激。< / p>

3 个答案:

答案 0 :(得分:2)

您通常使用list[i]表示法访问列表中的第i个元素 在此处使用相同的语法:list[i]其中listtranslatedtexture[i,j] 因此,translatedtexture[i,j][k]将是translatedtexture[i,j]中的第k个列表项。

代码如下所示:

newtexture.SetPixel(i, j, new Color(translatedtexture[i,j][0], translatedtexture[i,j][1], translatedtexture[i,j][2], translatedtexture[i,j][3]);

然而,它看起来有点大丑。更好地使用Color[,]或使用自定义结构 或者至少这样做:

var colorRgba = translatedtexture[i,j];
newtexture.SetPixel(i, j, new Color(colorRgba[0], colorRgba[1], colorRgba[2], colorRgba[3]);  

答案 1 :(得分:1)

您可以像这样访问列表元素:

translatedtexture[i,j][0] //red
translatedtexture[i,j][1] //green
translatedtexture[i,j][2] //blue
translatedtexture[i,j][3] //alpha

答案 2 :(得分:0)

尝试这样做:

public List<Color>[,] translatedtexture

或者如果你想节省一点内存(Color类有方法等):

public class MyColor
{
    public float A;
    public float R;
    public float G;
    public float B;
}
public MyColor[,] translatedtexture