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

时间:2011-02-22 18:04:50

标签: c# .net string types

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

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

先谢谢

5 个答案:

答案 0 :(得分:20)

根据dataRow.ItemArray

中的实际对象,您有两个选项

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

dataRow.ItemArray.OfType<string>().ToList();

但是如果对象是另一种类型,比如int或其他东西,则需要将其转换为字符串(在此示例中为.ToString(),但在您的情况下可能需要另一种自定义方法

dataRow.ItemArray.Select(o => o.ToString()).ToList();

修改
如果您明确不需要List<string>string[],则可以退出.ToList()并获得IEnumerable<string>

答案 1 :(得分:9)

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

(你想要的是第二行)

答案 2 :(得分:4)

List<string> strList = objArray.Cast<String>();

您可能需要先检查空值:

List<string> strList = objArray.Select( o => o == null ? String.Empty : o.ToString() ).ToList();

答案 3 :(得分:4)

您可以System.Array.ConvertTo使用System.Convert.ToString作为代理人。

答案 4 :(得分:3)

ToArray和ToList不会完全按照你的意愿行事,因为它们只会返回一个对象数组或列表。您需要先将数据按到字符串中,Select可以提供帮助。试试这个:

 dataRow.ItemArray.Select(i => i == null ? string.Empty : i.ToString()).ToArray();