首页 > 解决方案 > 将像素列表声明为带有附加变量的 blob

问题描述

作为一种爱好,我正在尝试研究一种场景文本检测方法。

我希望执行以下操作:

           struct pixel1
                    {
                        public int y1;            
                        public int x1;
                        public Color color1;
                    };

           List<pixel1> blob1 = new List<pixel1>();//I failed to create blob1 list with variables.

           List<blob1> listofblob1 = new List<blob1>();//declair list of blob which I failed to do.

    private void runMethod1()
        {
    //I want to use it like it shows in below.
    foreach (var blob1 in listofblob1)
        {
    blob1.DistanceToClosestBlob=getDistanceToNextblob(blob1, listofblob1);
    blob1.size=blob1.Count;
    blob1.centerxy=getcenterXY(blob1);
    if(blob1.center.x<0||blob1.center.y<0){return;}
        }
}

有可能做到吗?

标签: c#

解决方案


如果您将其更改为一个类,那么您可以做更多的事情来创建一个不可变的 struct

不可变结构参考在这里:如何使结构不可变?

需要这样做:

struct Pixel1
{
    public int X1 { get; }
    public int Y1 { get; }            
    public Color Color1 { get; }

    public Pixel1(int x, int y, Color c)
    {
       X1 = x;
       Y1 = y;
       Color1 = c;
    }            
};

但是让它成为一个类。


推荐阅读