简体   繁体   English

返回IEnumerable <string> 从Linq查询

[英]Returning IEnumerable<string> from Linq query

I'm trying to return an IEnumerable<string> from a linq query and I'm getting the error: Cannot convert IEnumerable<AnonymousType> to IEnumerable<string> 我正在尝试从linq查询返回IEnumerable<string> ,但出现错误:无法将IEnumerable<AnonymousType>转换为IEnumerable<string>

I have no idea how to go about fixing this issue. 我不知道如何解决此问题。

private IEnumerable<string> GetAllMembers(Type type)
        {    

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

                 }
                );

            return query;
        }

Try this 尝试这个

private IEnumerable<string> GetAllMembers(Type type)
    {    

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

        return query;
    }

You were creating an IEnumerable of anonymous types, when I think you just wanted an enumeration of strings. 当我认为您只想枚举字符串时,您正在创建一个IEnumerable匿名类型。

You are creating anonymous type with Member property. 您正在使用Member属性创建匿名类型。 Simply return string values thus you are expect IEnumerable<string> 简单地返回字符串值,因此您期望IEnumerable<string>

private IEnumerable<string> GetAllMembers(Type type)
{    
    return from member in type.GetMembers()
           select member.GetType() + " " + member.ToString();
}

You are returning an anonymous type (constructed by new {} ) from your query and not a string. 您正在从查询中返回匿名类型(由new {}构造),而不是字符串。 You can modify the query like this for example, so the result is an IEnumerable<string> : 例如,您可以像这样修改查询,因此结果是IEnumerable<string>

return from member in type.GetMembers()
       select member.GetType() + " " + member.ToString();

The problem is your query returns an anonymous object with one property Members which is a string, simply change to just returning the string: 问题是您的查询返回的匿名对象具有一个属性Members ,该属性是一个字符串,只需更改为仅返回字符串即可:

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

  return query;

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

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