C # лучший способ конвертировать объект в строковый массив - PullRequest
0 голосов
/ 23 февраля 2019

Я застрял в чем-то.Я хочу преобразовать этот объект, который является массивом объектов, в массив строк, я не могу найти хороший способ сделать это.Нужно ли использовать цикл for?Если кто-то также может сказать мне, почему эти 2 метода не помогли, я буду признателен.

    object greetings = new object[] { "hi", "hello", "greetings" };
    if (greetings.GetType().IsArray)
    {
        //string[] arr = greetings as string[];
        //string[] arr = (string[])greetings;
    }

Ответы [ 3 ]

0 голосов
/ 23 февраля 2019
string[] arr = Array.ConvertAll((object[])greetings, Convert.ToString);
0 голосов
/ 23 февраля 2019

Если вы хотите включить только объекты, которые являются строками:

string[] result = greetings.OfType<string>().ToArray();

Если вы хотите включить все (не строки выдают исключение):

string[] result = greetings.Cast<string>().ToArray();
0 голосов
/ 23 февраля 2019

попробуйте это.

object[] objArray = { "A", "B", "C" };
string[] strArray = objArray.Cast<string>().ToArray();

//2.
object[] objArray2 = { "A", null, 1, false };
foreach (object obj in objArray2)
{
  if (obj != null)
  {
    if (obj.GetType() == typeof(string))
    {
      //strings values in here
    }
  }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...