|
using System;
using System.Collections.Generic;
using System.Runtime.CompilerServices;
namespace AngleSharp.DOM.Css
{
/// <summary>
/// Represents a list of values in the CSS context.
/// </summary>
sealed class CSSValueList : CSSValue
{
#region Members
List<CSSValue> _items;
#endregion
#region ctor
/// <summary>
/// Creates a new CSS value list.
/// </summary>
internal CSSValueList()
{
_items = new List<CSSValue>();
_type = CssValue.ValueList;
}
/// <summary>
/// Creates a new CSS value list.
/// </summary>
/// <param name="items">The list of values to consider.</param>
internal CSSValueList(List<CSSValue> items)
{
_items = items;
_type = CssValue.ValueList;
}
#endregion
#region Properties
/// <summary>
/// Gets the number of CSSValues in the list.
/// </summary>
public Int32 Length
{
get { return _items.Count; }
}
/// <summary>
/// Used to retrieve a CSSValue by ordinal index. The order in this collection represents the order of the values in the CSS style property.
/// </summary>
/// <param name="index">If index is greater than or equal to the number of values in the list, this returns null.</param>
/// <returns>The value at the given index or null.</returns>
[IndexerName("ListItems")]
public CSSValue this[Int32 index]
{
get { return index >= 0 && index < _items.Count ? _items[index] : null; }
}
#endregion
#region Methods
/// <summary>
/// Used to retrieve a CSSValue by ordinal index. The order in this collection represents the order of the values in the CSS style property.
/// </summary>
/// <param name="index">If index is greater than or equal to the number of values in the list, this returns null.</param>
/// <returns>The value at the given index or null.</returns>
public CSSValue Item(Int32 index)
{
return this[index];
}
/// <summary>
/// Returns a CSS code representation of the stylesheet.
/// </summary>
/// <returns>A string that contains the code.</returns>
public override String ToCss()
{
var values = new String[_items.Count];
for (int i = 0; i < _items.Count; i++)
values[i] = _items[i].CssText;
return String.Join(" ", values);
}
#endregion
}
}
|
By viewing downloads associated with this article you agree to the Terms of Service and the article's licence.
If a file you wish to view isn't highlighted, and is a text file (not binary), please
let us know and we'll add colourisation support for it.
Florian lives in Munich, Germany. He started his programming career with Perl. After programming C/C++ for some years he discovered his favorite programming language C#. He did work at Siemens as a programmer until he decided to study Physics.
During his studies he worked as an IT consultant for various companies. After graduating with a PhD in theoretical particle Physics he is working as a senior technical consultant in the field of home automation and IoT.
Florian has been giving lectures in C#, HTML5 with CSS3 and JavaScript, software design, and other topics. He is regularly giving talks at user groups, conferences, and companies. He is actively contributing to open-source projects. Florian is the maintainer of AngleSharp, a completely managed browser engine.