2016-05-27 8 views
0

オブジェクトから値を取得する方法がわかりません。これはコードです:c#のxmlクエリからオブジェクト値を取得

private object GetUserData(XElement xmlDoc) 
    { 
     return 
       xmlDoc.Descendants("UserData").Select(u => new 
       { 
        UserName = u.Element("UserName").Value, 
        Pass = u.Element("Pass").Value, 
        CurTemplate = u.Element("CurrentTemplate").Value 
       }); 
    } 

これはに格納取得されています

var userData = GetUserData(xmlDoc); 

私はこれをデバッグ、およびuserData値を開いたとき、それは私のdefinded性質を持つつのリストを持っているが、私は単にそれらを達成することはできません。戻り値をリスト、辞書、ルックアップ、文字列などに変換しようとしましたが、これはまったく役に立ちません。助けてもらえますか?

ありがとうございました!

答えて

2

匿名型を返すことはできません。「オブジェクト」を返すことで偽装することは、これではまったく役に立ちません。匿名オブジェクトを定義するスコープ外のプロパティが必要な場合、匿名オブジェクトは必要なものではなく、必要なプロパティ(UserName、Pass、CurTemplate)でクラスを定義し、そのインスタンスを選択する必要があります新しい匿名タイプの代わりにタイプを使用します。その後、あなたのメソッドからIEnumerableを返すことができます

public class UserData 
{ 
    public string UserName; 
    public string Pass; 
    public string CurTemplate; 
} 

private IEnumerable<UserData> GetUserData(XElement xmlDoc) 
{ 
    return 
      xmlDoc.Descendants("UserData").Select(u => new UserData 
      { 
       UserName = u.Element("UserName").Value, 
       Pass = u.Element("Pass").Value, 
       CurTemplate = u.Element("CurrentTemplate").Value 
      }); 
} 
+0

それは動作します。ソリューションと説明をありがとう! – Canox

関連する問題