Подтвердить что ты не робот

Лучший способ конвертировать Object [] в String [] или List <String>

У меня есть строка данных. Я могу получить элементы в нем, используя свойство dataRow.ItemArray, которое имеет тип object[]. Мне нужно преобразовать это в String[] или List<String>

Я вижу методы ToArray<> и ToList<>. но не знаю, как его использовать. Непременно помогите.

Спасибо в Advance

4b9b3361

Ответ 1

У вас есть два варианта в зависимости от реальных объектов в dataRow.ItemArray

Если в объекте есть фактически строковые объекты, вы можете просто выделить элемент.

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

но если объекты имеют другой тип, например int или что-то еще, вам нужно преобразовать строку в строку (в этом примере с .ToString(), но в вашем случае может потребоваться другой настраиваемый метод

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

Edit:
Если вам не нужны List<string> или string[] явно, вы можете оставить .ToList() и получить IEnumerable<string>.

Ответ 2

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

(нужная строка - вторая)

Ответ 3

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

Сначала вы можете сначала проверить нули:

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

Ответ 4

Вы можете использовать System.Array.ConvertTo с System.Convert.ToString в качестве делегата.

Ответ 5

ToArray и ToList не будут делать то, что вы хотите, поскольку они возвратят только массив объектов или список. Сначала вам нужно массировать данные в строки, а Select может помочь. Попробуйте следующее:

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