C# 如何从对象数组中筛选字符串

C# 如何从对象数组中筛选字符串,c#,arrays,string,collections,C#,Arrays,String,Collections,我有这样一个对象数组: object[] test = { "Rock Parrot", "Crimson Rosella", "Regent Parrot", "Superb Parrot", "Red Lory", "African Emerald Cuckoo", 1,2,3 }; 如何筛选此数组并仅获取字符串数组 谢谢您可以这样做: var stringsOnly =

我有这样一个对象数组:

 object[] test = {
        "Rock Parrot",
        "Crimson Rosella",
        "Regent Parrot",
        "Superb Parrot",
        "Red Lory",
        "African Emerald Cuckoo",
        1,2,3


};
如何筛选此数组并仅获取字符串数组

谢谢

您可以这样做:

var stringsOnly = test.OfType<String>().ToArray()
var stringsOnly=test.OfType().ToArray()
您可以执行以下操作:

object[] test = {
        "Rock Parrot",
        "Crimson Rosella",
        "Regent Parrot",
        "Superb Parrot",
        "Red Lory",
        "African Emerald Cuckoo",
        1,2,3};

List<string> s = new List<string>();

foreach (var item in test)
{

    if (typeof(string) == item.GetType())
        s.Add(item.ToString());
}
您可以转换为数组:

var a = s.ToArray();
string[]stringArray=test.Where(element=>element为string.Cast().ToArray();

这对我不起作用。可能是因为类型缺少括号吗?这很好@Blorgbeard。。。我还尝试了这个var stringOnly=Array.FindAll(test,x=>x是string);你认为哪一个在资源上更好。我想实际上,两者都“足够快”。如果您担心的话,我建议您:p如果数组中存在任何
null
值,则此操作将崩溃。欢迎使用堆栈溢出:-)请查看。您应该提供一些信息,说明代码解决问题的原因。仅代码的答案对社区没有用处。谢谢Blorgbeard-修复
var a = s.ToArray();
string[] stringArray = test.Where(element => element is string).Cast<string>().ToArray();