Лучший способ преобразовать Object[] в String[] или List
у меня есть строка данных. Я могу получить элементы в нем, используя свойство dataRow.ItemArray
типа object[]
.
Мне нужно преобразовать это в String[]
или List<String>
Я вижу методов ToArray<>
и ToList<>
. но не знаю, как им пользоваться.Пожалуйста, помогите.
спасибо заранее
5 ответов
у вас есть два варианта в зависимости от фактических объектов в dataRow.ItemArray
если на самом деле есть строковые объекты в object [], вы можете просто использовать элемент wise.
dataRow.ItemArray.OfType<string>().ToList();
но если объекты другого типа, например int или что-то еще, вам нужно преобразовать в строку (в этом примере с .ToString()
но в вашем случае может потребоваться другой пользовательский метод
dataRow.ItemArray.Select(o => o.ToString()).ToList();
Edit:
Если вам не нужно List<string>
или string[]
явно вы можете оставить .ToList()
и получает .
object[] a = new object[10];
string[] b = Array.ConvertAll(a, p => (p ?? String.Empty).ToString())
(строка, которую вы хотите, является второй)
List<string> strList = objArray.Cast<String>();
вы можете сначала проверить наличие нулей:
List<string> strList = objArray.Select( o => o == null ? String.Empty : o.ToString() ).ToList();
ToArray и ToList не будут делать то, что вы хотите, так как они будут возвращать только массив объектов или список. Сначала вам нужно массировать данные в строки, и Select
могу помочь. Попробуйте это:
dataRow.ItemArray.Select(i => i == null ? string.Empty : i.ToString()).ToArray();