C# 从Linq查询返回IEnumerable

C# 从Linq查询返回IEnumerable,c#,linq,ienumerable,C#,Linq,Ienumerable,我试图从linq查询返回IEnumerable,但得到错误: 无法将IEnumerable转换为IEnumerable 我不知道如何着手解决这个问题 private IEnumerable<string> GetAllMembers(Type type) { var query = (from member in type.GetMembers() select new

我试图从linq查询返回IEnumerable,但得到错误: 无法将IEnumerable转换为IEnumerable

我不知道如何着手解决这个问题

private IEnumerable<string> GetAllMembers(Type type)
        {    

            var query =
                (from member in type.GetMembers()
                 select new
                 {
                     Member = member.GetType() + " " + member.ToString()

                 }
                );

            return query;
        }

您正在创建具有成员属性的匿名类型。只需返回字符串值,就可以使用IEnumerable


您正在创建具有成员属性的匿名类型。只需返回字符串值,就可以使用IEnumerable

试试这个

private IEnumerable<string> GetAllMembers(Type type)
    {    

        var query =
            from member in type.GetMembers()
             select member.GetType() + " " + member.ToString();

        return query;
    }
您正在创建匿名类型的IEnumerable,而我认为您只是想要字符串的枚举。

试试这个

private IEnumerable<string> GetAllMembers(Type type)
    {    

        var query =
            from member in type.GetMembers()
             select member.GetType() + " " + member.ToString();

        return query;
    }

您正在创建匿名类型的IEnumerable,而我认为您只需要字符串的枚举。

您正在从查询返回由new{}构造的匿名类型,而不是字符串。 例如,您可以像这样修改查询,因此结果是IEnumerable:


您正在从查询返回由new{}构造的匿名类型,而不是字符串。 例如,您可以像这样修改查询,因此结果是IEnumerable:


问题是您的查询返回一个匿名对象,其中一个属性成员是字符串,只需更改为仅返回字符串:

 var query =
            (from member in type.GetMembers()
             select member.GetType() + " " + member.ToString()
            );

  return query;

问题是您的查询返回一个匿名对象,其中一个属性成员是字符串,只需更改为仅返回字符串:

 var query =
            (from member in type.GetMembers()
             select member.GetType() + " " + member.ToString()
            );

  return query;

使用ToList将解决您的问题problem@Nick-不,不会。使用ToList可以解决您的问题problem@Nick-不会的。