AngleSharp by Florian Rappl

<PackageReference Include="AngleSharp" Version="0.5.1" />

 CssRangeToken

sealed class CssRangeToken : CssToken
Represents the CSS range token.
using System.Collections.Generic; using System.Globalization; namespace AngleSharp.Parser.Css { internal sealed class CssRangeToken : CssToken { private string[] _range; public bool IsEmpty { get { if (_range != null) return _range.Length == 0; return true; } } public string[] SelectedRange => _range; public CssRangeToken() { _type = CssTokenType.Range; } public CssRangeToken SetRange(string start, string end) { int i = int.Parse(start, NumberStyles.HexNumber); if (i <= 1114111) { if (end == null) _range = new string[1] { char.ConvertFromUtf32(i) }; else { List<string> list = new List<string>(); int num = int.Parse(end, NumberStyles.HexNumber); if (num > 1114111) num = 1114111; for (; i <= num; i++) { list.Add(char.ConvertFromUtf32(i)); } _range = list.ToArray(); } } return this; } public override string ToValue() { if (IsEmpty) return string.Empty; if (_range.Length == 1) return "#" + char.ConvertToUtf32(_range[0], 0).ToString("x"); return "#" + char.ConvertToUtf32(_range[0], 0).ToString("x") + "-#" + char.ConvertToUtf32(_range[_range.Length - 1], 0).ToString("x"); } } }