简体   繁体   English

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

[英]C# best way to convert object to string array

I am stuck in something. 我陷入了困境。 I want to convert this object, which is a array of objects, into a array of strings I cannot find a good way to do that. 我想将此对象(它是一个对象数组)转换为一个字符串数组,但我找不到一种很好的方法。 Do I need to use a for loop? 我需要使用for循环吗? If someone can also tell me why these 2 methods failed, I will appreciate. 如果有人也可以告诉我这两种方法为何失败,我将不胜感激。

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

If you want to include only objects that are strings: 如果只想包含字符串对象:

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

If you want to include everything (non-strings throw an exception): 如果要包括所有内容(非字符串会引发异常):

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

try this. 尝试这个。

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

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM