我有一个DataRow,它有多个字符串值和一个id为int:
我想将此DataRow转换为List。我已经按照以下方式尝试了它(situationRisk
是我的DataRow):
situationRisk.ItemArray.Cast<string>().ToList()
但这给了我一个错误,我无法将System.Int64 id转换为System.String。
任何人都知道怎么做而不循环遍历每个元素并单独添加它们?
答案 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();
用空字符串替换它们。