C#将对象转换为字符串数组的最佳方法

时间:2019-02-23 06:55:35

标签: c# arrays string object

我陷入了困境。 我想将此对象(它是一个对象数组)转换为一个字符串数组,但我找不到一种很好的方法。我需要使用for循环吗?如果有人还可以告诉我这两种方法为何失败,我将不胜感激。

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

3 个答案:

答案 0 :(得分:1)

string[] arr = Array.ConvertAll((object[])greetings, Convert.ToString);

答案 1 :(得分:1)

如果您只想包含字符串对象:

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

如果要包含所有内容(非字符串会引发异常):

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

答案 2 :(得分:-1)

尝试一下。

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
    }
  }
}