从 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();
}
我刚开始定义 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();
}