LastChildSelector
The nth-lastchild selector.
using AngleSharp.Css;
using System;
namespace AngleSharp.Dom.Css
{
internal sealed class LastChildSelector : ChildSelector
{
public LastChildSelector()
: base(PseudoClassNames.NthLastChild)
{
}
public override bool Match(IElement element)
{
IElement parentElement = element.ParentElement;
if (parentElement != null) {
int num = Math.Sign(_step);
int num2 = 0;
for (int num3 = parentElement.ChildNodes.Length - 1; num3 >= 0; num3--) {
IElement element2 = parentElement.ChildNodes[num3] as IElement;
if (element2 != null && _kind.Match(element2)) {
num2++;
if (element2 == element) {
int num4 = num2 - _offset;
if (num4 != 0) {
if (Math.Sign(num4) == num)
return num4 % _step == 0;
return false;
}
return true;
}
}
}
}
return false;
}
}
}