我是定义课程的新手。我想定义一个名为“数据平面”的课程。 (因为它是用于存储csv文件的二维数据集,因此可能表示为空间中的平面),它继承了类List<List<string>>
的所有方法(如果这是一个类)。
到目前为止,我已成功申报了该课程,并创建了一个方法来返回一个&#39;列&#39;数据,但我无法调用该方法。我之前在让类继承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方法。
提前感谢您的帮助。
答案 0 :(得分:3)
表面上的问题是,您已将方法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();
}
答案 1 :(得分:2)
制作方法public
而不是private
。