我是定义类的新手。我想定义一个被称为"数据平面"的类(因为它是用于存储 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
。