RealWorldTerrainXMLList.cs 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576
  1. /* INFINITY CODE 2013-2019 */
  2. /* http://www.infinity-code.com */
  3. using System.Collections;
  4. #if !NETFX_CORE
  5. using System.Xml;
  6. #else
  7. using Windows.Data.Xml.Dom;
  8. #endif
  9. namespace InfinityCode.RealWorldTerrain.XML
  10. {
  11. /// <summary>
  12. /// Wrapper for XmlNodeList.
  13. /// </summary>
  14. public class RealWorldTerrainXMLList : IEnumerable
  15. {
  16. private readonly XmlNodeList _list;
  17. /// <summary>
  18. /// Count of the elements.
  19. /// </summary>
  20. public int count
  21. {
  22. get { return _list != null ? _list.Count : 0; }
  23. }
  24. /// <summary>
  25. /// Reference to XmlNodeList.
  26. /// </summary>
  27. public XmlNodeList list
  28. {
  29. get { return _list; }
  30. }
  31. /// <summary>
  32. /// Create empty list.
  33. /// </summary>
  34. public RealWorldTerrainXMLList()
  35. {
  36. }
  37. /// <summary>
  38. /// Create wrapper for XmlNodeList.
  39. /// </summary>
  40. /// <param name="list">XmlNodeList.</param>
  41. public RealWorldTerrainXMLList(XmlNodeList list)
  42. {
  43. _list = list;
  44. }
  45. /// <summary>
  46. /// Get the element by index.
  47. /// </summary>
  48. /// <param name="index">Index of element.</param>
  49. /// <returns>Element.</returns>
  50. public RealWorldTerrainXML this[int index]
  51. {
  52. get
  53. {
  54. if (_list == null || index < 0 || index >= _list.Count) return new RealWorldTerrainXML();
  55. return new RealWorldTerrainXML(_list[index] as XmlElement);
  56. }
  57. }
  58. public IEnumerator GetEnumerator()
  59. {
  60. for (int i = 0; i < count; i++)
  61. {
  62. yield return this[i];
  63. }
  64. }
  65. }
  66. }