如何恢复 List<DataRow> 的内容并变成 List<string>
How can i recover content of a List<DataRow> and turn into a List<string>
我正在读取 Excel 文件并将其内容插入到 List<DataRow>
中,如下所示:
DataSet ds = excelReader.AsDataSet();
DataTable data = ds.Tables[0];
List<DataRow> rows = data.Rows.Cast<DataRow>().ToList();
这工作得很好,但我需要 List<String>
上的这些内容
如果你想获取第一列的值
var rows = data.Rows.Cast<DataRow>().Select(dr => dr[0].ToString());
您可以尝试 OfType Linq 方法,方法如下:
List<string> rowsAsString = rows.OfType<string>()
这将尝试将每一行转换为一个字符串,但是如果转换无效,这将失败,您必须操纵每一行以获得预期的输出,类似于 Milton 的回答。在不知道您希望如何格式化输出的情况下,我无法为您提供确切的答案。
我用这段代码弄明白了:
List<DataRow> pStrings //this is my populated list
int y = 0;
foreach (DataRow str in pStrings)
{
string value = str[y].ToString();
y++;
}
使用这段代码我可以获得每个 DataRow
的值。
感谢大家的回答
我正在读取 Excel 文件并将其内容插入到 List<DataRow>
中,如下所示:
DataSet ds = excelReader.AsDataSet();
DataTable data = ds.Tables[0];
List<DataRow> rows = data.Rows.Cast<DataRow>().ToList();
这工作得很好,但我需要 List<String>
如果你想获取第一列的值
var rows = data.Rows.Cast<DataRow>().Select(dr => dr[0].ToString());
您可以尝试 OfType Linq 方法,方法如下:
List<string> rowsAsString = rows.OfType<string>()
这将尝试将每一行转换为一个字符串,但是如果转换无效,这将失败,您必须操纵每一行以获得预期的输出,类似于 Milton 的回答。在不知道您希望如何格式化输出的情况下,我无法为您提供确切的答案。
我用这段代码弄明白了:
List<DataRow> pStrings //this is my populated list
int y = 0;
foreach (DataRow str in pStrings)
{
string value = str[y].ToString();
y++;
}
使用这段代码我可以获得每个 DataRow
的值。
感谢大家的回答