[英]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.