将单个DataRow(带有字符串和整数)转换为List <string> c#

时间:2016-12-21 10:07:57

标签: c# datatable casting

我有一个DataRow,它有多个字符串值和一个id为int:

我想将此DataRow转换为List。我已经按照以下方式尝试了它(situationRisk是我的DataRow):

situationRisk.ItemArray.Cast<string>().ToList()

但这给了我一个错误,我无法将System.Int64 id转换为System.String。

任何人都知道怎么做而不循环遍历每个元素并单独添加它们?

1 个答案:

答案 0 :(得分:8)

您的错误在于您不希望对象投射到string,而是转换它们。满足您要求的最简单方法是:

situationRisk.ItemArray.Select(i => i.ToString()).ToList();

正如Søren在下面提到的,请关注null中的DataRow值。根据您的要求,我建议这样的事情:

situationRisk.ItemArray.Select(i => i?.ToString()).ToList();

在列表中插入null

situationRisk.ItemArray.Select(i => i?.ToString() ?? string.Empty).ToList();

用空字符串替换它们。