c# - 列表也返回它不包含的内容

标签 c# .net list value-type

我有一个图像,我在下面给出的列表中添加了一些像素。

 List<Color> ycolo = new List<Color>();
 for (int p = 5; p < FilteredImage.Width; p++) { 
      for (int k = 5; k < FilteredImage.Height ;k++)
      {
          ycolo.Add(FilteredImage.GetPixel(p, k));

          if (k==10) { break; }
      }
    if (p== 20) { break; }
}


if (!ycolo.Contains(FilteredImage.GetPixel(21,11)))
{
    MessageBox.Show("Im here");
}
else
{ MessageBox.Show("Im not here"); }

它返回true(Im here),尽管它不包含21,11位置处的像素。这里出了什么问题。我正在使用 Visual Studio c#。 怎样做才能让它发挥作用?

最佳答案

您混淆了像素的位置和颜色。 FilteredImage.GetPixel(21,11) 方法返回像素的颜色。

要测试某个位置的像素是否已添加到列表中,请使用以下代码:

List<System.Drawing.Point> ycolo = new List<System.Drawing.Point>();

for (int p = 5; p < FilteredImage.Width; p++)
{
    for (int k = 5; k < FilteredImage.Height; k++)
    {
        ycolo.Add(new System.Drawing.Point(p, k));

        if (k == 10) { break; }
    }
    if (p == 20) { break; }
}

if (ycolo.Contains(new System.Drawing.Point(21, 11)))
{
    MessageBox.Show("Im here");
}
else
{
    MessageBox.Show("Im not here");
}

关于c# - 列表也返回它不包含的内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37228146/

相关文章:

c# - 如何从当前时间减去 6 小时?

python - 比较列表和搜索列表中的术语的最快方法

c# - 循环遍历一个实体对象的所有属性并获取对应的值?

c# - 文本框上的 jquery 日期选择器问题

c# - 数据绑定(bind)链

c# - 如何正确释放SafeHandleZeroOrMinusOneIsInvalid或SafeHandle?

c# - DataGridView 选择行并以另一种形式进行编辑

javascript - 改变jquery中的li类

Python:列表是否包含 3 个相加为 7 的连续整数?

c# - 在mac上使用Pomelo.EntityFrameworkCore.MySql通过.net 6连接到mysql