1

<str>からタグのコンテンツを抽出しようとしています:

<lst name="Stack">
  <lst name="Overflow">
     <arr name="content">
       <str>Help</str>
     </arr>
  </lst>
</lst>

私が C# で使用しているコードは次のとおりです。

txtResponse.Text += xDoc.Descendants("lst")
        .Where(f => (string) f.Attribute("name") == "Overflow")
        .Descendants("arr")
        .Descendants("str")
        .Select(b => b.Value);

でもそれは私に戻ってくる

System.Linq.Enumerable+WhereSelectEnumerableIterator`2[System.Xml.Linq.XElement,System.String]

私の問題は何ですか?

4

2 に答える 2

2

このコードは、単一の要素ではなく、要素のコレクション (列挙) を返します。あなたの場合、実際にはIEnumerable<string>、つまり「文字列のリスト」です。Textプロパティは単一の文字列を想定しています。

あなたの質問からは、 の内容がどのtxtResponseように見えるべきかは明確ではありませんが、次のようなことができます。

   var result = xDoc.Descendants("lst")
        .Where(f => (string) f.Attribute("name") == "Overflow")
        .Descendants("arr")
        .Descendants("str")
        .Select(b => b.Value);

   txtResponse.Text = string.Join(", ", result);
于 2013-08-27T11:31:52.927 に答える