使用从列表派生的类时遇到问题<string><>



我是定义类的新手。我想定义一个被称为"数据平面"的类(因为它是用于存储 csv 文件的二维数据集,因此可能表示为空间中的平面),它继承类的所有方法List<List<string>>(如果这是一个类)。

到目前为止,我已经设法声明了该类并创建了一个方法来返回数据的"列",但我无法调用该方法。我之前在让类继承List<List<string>>类的方法时遇到了麻烦,但经过一些研究后到达了那里。

出于某种原因,当我尝试翻译教程以构建一个返回List<string>中的数据列的方法时,它不允许我调用该方法。

有人可以给我一个清晰的例子和 Layman 的术语解释,说明如何声明一个继承自另一个类的类,并为它编写一个使用该类值的方法?

或者,有人可以描述我如何使用扩展方法吗?

另外,如果有人有洞察力,这是我到目前为止所拥有的:

public class dataplanematrix : List<List<string>>
{
    List<List<string>> dataplane;
    private List<string> getColumn (int value)
    {
            List<string> columnValue = new List<string>();
            foreach (List<string> line in dataplane)
            {
                columnValue.Add(line[value].ToString());
            }
            return columnValue;
    }
}

上面的代码的问题是我无法调用getColumn方法。

提前感谢您的帮助。

表面上的问题是你已经声明了你的方法private什么时候应该public

但是,您的类定义是错误的。没有必要有一个字段。

只需这样做:

public class DataPlaneMatrix : List<List<string>>
{
    public List<string> GetColumn(int value)
    {
        List<string> columnValue = new List<string>();
        foreach (List<string> line in this)
        {
            columnValue.Add(line[value]);
        }
        return columnValue;
    }
}

也没有必要做line[value].ToString()因为line[value]会做得很好。

你也可以像这样定义你的类:

public class DataPlaneMatrix : List<List<string>>
{
    public List<string> GetColumn(int value)
    {
        return this.Select(line => line[value]).ToList();
    }
}

或者,如果您使用的是 C# 6.0,如下所示:

public class DataPlaneMatrix : List<List<string>>
{
    public List<string> GetColumn(int value) => this.Select(line => line[value]).ToList();
}

让你的方法public而不是private

最新更新