将Object []转换为String []或List <String>的最佳方法

Ana*_*nth 12 .net c# string types

我有一个数据行.我可以使用属性dataRow.ItemArray类型的属性获取其中的项目object[].我需要将其转换为String[]List<String>

我看到的方法ToArray<>ToList<>.但不知道如何使用它.亲切的帮助.

提前致谢

Alb*_*nbo 20

根据dataRow.ItemArray中的实际对象,您有两个选项

如果对象[]中实际存在字符串对象,则可以直接转换元素.

dataRow.ItemArray.OfType<string>().ToList();
Run Code Online (Sandbox Code Playgroud)

但是如果对象是另一种类型,比如int或其他什么你需要转换为字符串(在这个例子中,.ToString()但在你的情况下可能需要另一个自定义方法)

dataRow.ItemArray.Select(o => o.ToString()).ToList();
Run Code Online (Sandbox Code Playgroud)

编辑:
如果你不需要List<string>string[]明确地你可以离开.ToList()IEnumerable<string>取而代之.

  • +1用于谈论*强制和转换.考虑在转换示例中提及/处理`null` /`DBNull`,因为这些是一些常见的情况(根据我的经验). (2认同)

xan*_*tos 9

 object[] a = new object[10];
 string[] b = Array.ConvertAll(a, p => (p ?? String.Empty).ToString())
Run Code Online (Sandbox Code Playgroud)

(你想要的线是第二个)