我陷入了困境。 我想将此对象(它是一个对象数组)转换为一个字符串数组,但我找不到一种很好的方法。我需要使用for循环吗?如果有人还可以告诉我这两种方法为何失败,我将不胜感激。
object greetings = new object[] { "hi", "hello", "greetings" };
if (greetings.GetType().IsArray)
{
//string[] arr = greetings as string[];
//string[] arr = (string[])greetings;
}
答案 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
}
}
}