1

IEnumerable<string>linqクエリからを返そうとすると、次のエラーが発生します:に変換IEnumerable<AnonymousType>できませんIEnumerable<string>

この問題を修正する方法がわかりません。

private IEnumerable<string> GetAllMembers(Type type)
        {    

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

                 }
                );

            return query;
        }
4

4 に答える 4

5

これを試して

private IEnumerable<string> GetAllMembers(Type type)
    {    

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

        return query;
    }

文字列の列挙が必要だと思ったときに、匿名型のIEnumerableを作成していました。

于 2012-11-21T10:20:43.877 に答える
3

プロパティを使用して匿名タイプを作成していMemberます。文字列値を返すだけなので、期待どおりですIEnumerable<string>

private IEnumerable<string> GetAllMembers(Type type)
{    
    return from member in type.GetMembers()
           select member.GetType() + " " + member.ToString();
}
于 2012-11-21T10:20:08.377 に答える
2

new {}文字列ではなく、クエリから匿名型(によって構築された)を返しています。たとえば、このようにクエリを変更できるため、結果はIEnumerable<string>:になります。

return from member in type.GetMembers()
       select member.GetType() + " " + member.ToString();
于 2012-11-21T10:20:56.457 に答える
2

問題は、クエリが文字列である1つのプロパティを持つ匿名オブジェクトを返すことです。Members単に文字列を返すように変更します。

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

  return query;
于 2012-11-21T10:21:37.303 に答える