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

Mar*_*uis 1 c# datatable casting

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

我想将这个DataRow变成List.我用以下方式尝试过它(situationRisk是我的DataRow):

situationRisk.ItemArray.Cast<string>().ToList()
Run Code Online (Sandbox Code Playgroud)

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

任何人都知道如何在不循环每个元素并单独添加它们的情况下执行此操作?

Ren*_*ogt 8

你的错误是你不想的对象为string,而是转换他们.满足您要求的最简单方法是:

situationRisk.ItemArray.Select(i => i.ToString()).ToList();
Run Code Online (Sandbox Code Playgroud)

正如索伦在下面提到的那样,要照顾好的null价值观DataRow.根据您的要求,我建议这样的事情:

situationRisk.ItemArray.Select(i => i?.ToString()).ToList();
Run Code Online (Sandbox Code Playgroud)

它将nulls 插入列表或

situationRisk.ItemArray.Select(i => i?.ToString() ?? string.Empty).ToList();
Run Code Online (Sandbox Code Playgroud)

用空字符串替换它们.