我有一个数据行。我可以使用dataRow.ItemArray
类型的属性object[]
来获取其中的项目。
我需要将其转换为String[]
或List<String>
我看到方法ToArray<>
和ToList<>
。但不知道如何使用它。亲切的帮助。
先谢谢
答案 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();