从 List<List<string>> 派生的 类 遇到问题

Having trouble with classes derived from a List<List<string>>

我刚开始定义 classes。我想定义一个 class 配音 'dataplane' (因为它是用于存储 csv 文件的二维数据集,因此可能在 space 中表示为一个平面)继承所有class List<List<string>> 的方法(如果是 class)。

到目前为止,我已经成功地声明了 class 并为 return 和 'column' 数据创建了一个方法,但我无法调用该方法。我早些时候在让 class 从 List<List<string>> class 继承方法时遇到了麻烦,但经过一些研究后我做到了。

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

有人能给我一个清晰的例子和外行术语解释,说明如何声明从另一个继承的 class,并为其编写一个使用 class 值的方法吗?

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

此外,如果有人有见识,这是我目前所知道的:

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方法

在此先感谢您的帮助。

让你的方法 public 而不是 private

表面上的问题是您在应该 public.

时声明了您的方法 private

但是,您的 class 定义是错误的。不需要字段。

只需这样做:

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] 就可以了。

您也可以这样定义 class:

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();
}