いろいろ備忘録日記

主に .NET とか Go とか Flutter とか Python絡みのメモを公開しています。

Linq入門記-78 (LINQ to XML, ナビゲーション, FirstNode, LastNode)

LINQ to XMLでのナビゲーション系のプロパティについて.

過去の内容は以下から見れます。よろしければご参照くださいませ。


今回のFirstNodeとLastNodeはどちらもナビゲーションに関連するプロパティです。
どちらもXContainerに所属するプロパティです。


FirstNodeは、現在の要素の最初の子要素を取得します。
LastNodeは、現在の要素の最後の子要素を取得します。
取り立てて特徴も無いのですが、一応サンプルです。


以下、サンプルです。

namespace Gsf.Samples
{
  using System;
  using System.Collections.Generic;
  using System.Linq;
  using System.Xml.Linq;

  #region LinqSamples-74
  /// <summary>
  /// LINQ to XMLのサンプルです.
  /// </summary>
  /// <remarks>
  /// ナビゲーション(FirstNode, LastNodeプロパティ)のサンプルです.
  /// </remarks>
  public class LinqSamples74 : IExecutable
  {
    public void Execute()
    {
      //
      // FirstNode
      //   現在の要素の最初の子要素を取得する
      //
      var root = BuildSampleXml();
      var elem = root.Elements("Child").First();

      Console.WriteLine(root.FirstNode);
      Console.WriteLine(elem.FirstNode);

      //
      // LastNode
      //   現在の要素の最後の子要素を取得する
      //
      root = BuildSampleXml();
      elem = root.Elements("Child").First();

      Console.WriteLine(root.LastNode);
      Console.WriteLine(elem.LastNode);
    }

    XElement BuildSampleXml()
    {
      var root = new XElement("Root",
        new XElement("Child", "value1"),
        new XElement("Child", "value2"),
        new XElement("Child", "value3"),
        new XElement("Child", "value4")
      );

      return root;
    }
  }
  #endregion
}


実行すると以下のようになります。

  value1
  value1
  value4
  value1


以下、参考リソースです.

================================
過去の記事については、以下のページからご参照下さい。

サンプルコードは、以下の場所で公開しています。