C# 访问列表<;T>;价值观
我是一名编码初学者,试图解决简单的问题: 我有一个包含三列的列表,试图访问列表中存储的值。它没有给我答案。。。有什么想法吗?谢谢C# 访问列表<;T>;价值观,c#,list,C#,List,我是一名编码初学者,试图解决简单的问题: 我有一个包含三列的列表,试图访问列表中存储的值。它没有给我答案。。。有什么想法吗?谢谢 private void btnImage1Load_Click(object sender, EventArgs e) { openFileDialog1.ShowDialog(); pictureBox1.ImageLocation = openFileDialog1.FileName;
private void btnImage1Load_Click(object sender, EventArgs e)
{
openFileDialog1.ShowDialog();
pictureBox1.ImageLocation = openFileDialog1.FileName;
}
public class ListThreeColumns
{
public int XCoord { get; set; }
public int YCoord { get; set; }
public Color Color { get; set; }
}
private List<ListThreeColumns> GetPixels()
{
Bitmap picture = new Bitmap(pictureBox1.Image);
List<ListThreeColumns> colorList = new List<ListThreeColumns>
{
};
for (int y = 0; y < picture.Height; y++)
{
for (int x = 0; x < picture.Width; x++)
{
colorList.Add(new ListThreeColumns { XCoord = x, YCoord = y, Color = picture.GetPixel(x, y) });
}
}
return colorList;
}
private void btnScanPixels_Click(object sender, EventArgs e)
{
List<ListThreeColumns> seznamBarev = GetPixels();
MessageBox.Show(seznamBarev[6].ToString());
}
private void btnImage1Load\u单击(对象发送方,事件参数e)
{
openFileDialog1.ShowDialog();
pictureBox1.ImageLocation=openFileDialog1.FileName;
}
公共类列表三列
{
public int XCoord{get;set;}
public int YCoord{get;set;}
公共颜色{get;set;}
}
私有列表GetPixels()
{
位图图片=新位图(pictureBox1.Image);
列表颜色列表=新列表
{
};
对于(int y=0;y
在这行中:
MessageBox.Show(seznamBarev[6].ToString());
。。。您正在访问列表的元素6,但只需调用它上的ToString
。由于您没有覆盖列表三元素
(顺便说一句,最好将其命名为Pixel
),这意味着结果不会特别有用
你可以写:
ListThreeColumns pixel = seznamBarev[6];
MessageBox.Show(string.Format("{0}, {1} - {2}", pixel.X, pixel.Y, pixel.Color);
在这方面:
MessageBox.Show(seznamBarev[6].ToString());
。。。您正在访问列表的元素6,但只需调用它上的ToString
。由于您没有覆盖列表三元素
(顺便说一句,最好将其命名为Pixel
),这意味着结果不会特别有用
你可以写:
ListThreeColumns pixel = seznamBarev[6];
MessageBox.Show(string.Format("{0}, {1} - {2}", pixel.X, pixel.Y, pixel.Color);
你想做什么?
如果您想在字符串中显示每个项目,可以使用Jon方式。
但最好将操作转移到您的类中。
如果重写ListThreeColumns类中的“ToString()”方法,代码将正常工作,不会发生更改
public class ListThreeColumns
{
public int XCoord { get; set; }
public int YCoord { get; set; }
public Color Color { get; set; }
public override ToString()
{
return string.Format("X={0}, Y={1}, Color=({2};{3};{4})",
this.XCoord , this.YCoord , Color.R,Color.G,Color.B );
}
}
你想做什么?
如果您想在字符串中显示每个项目,可以使用Jon方式。
但最好将操作转移到您的类中。
如果重写ListThreeColumns类中的“ToString()”方法,代码将正常工作,不会发生更改
public class ListThreeColumns
{
public int XCoord { get; set; }
public int YCoord { get; set; }
public Color Color { get; set; }
public override ToString()
{
return string.Format("X={0}, Y={1}, Color=({2};{3};{4})",
this.XCoord , this.YCoord , Color.R,Color.G,Color.B );
}
}
可能的重复可能的重复