AngleSharp by Florian Rappl

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

.NET API 1,172,480 bytes

 HtmlOptionElement

Represents the HTML option element.
using AngleSharp.Dom.Css; using AngleSharp.Extensions; using AngleSharp.Html; namespace AngleSharp.Dom.Html { internal sealed class HtmlOptionElement : HtmlElement, IHtmlOptionElement, IHtmlElement, IElement, INode, IEventTarget, IParentNode, IChildNode, INonDocumentTypeChildNode, IElementCssInlineStyle { private bool? _selected; public bool IsDisabled { get { return GetAttribute(AttributeNames.Disabled) != null; } set { SetAttribute(AttributeNames.Disabled, value ? string.Empty : null); } } public IHtmlFormElement Form => GetAssignedForm(); public string Label { get { return GetAttribute(AttributeNames.Label); } set { SetAttribute(AttributeNames.Label, value); } } public string Value { get { return GetAttribute(AttributeNames.Value) ?? string.Empty; } set { SetAttribute(AttributeNames.Value, value); } } public int Index { get { HtmlOptionsGroupElement htmlOptionsGroupElement = base.Parent as HtmlOptionsGroupElement; if (htmlOptionsGroupElement != null) { int num = 0; foreach (INode childNode in htmlOptionsGroupElement.ChildNodes) { if (childNode == this) return num; num++; } } return 0; } } public string Text { get { return TextContent.CollapseAndStrip(); } set { TextContent = value; } } public bool IsDefaultSelected { get { return GetAttribute(AttributeNames.Selected) != null; } set { SetAttribute(AttributeNames.Selected, value ? string.Empty : null); } } public bool IsSelected { get { if (!_selected.HasValue) return IsDefaultSelected; return _selected.Value; } set { _selected = value; } } public HtmlOptionElement(Document owner) : base(owner, Tags.Option, NodeFlags.ImplicitelyClosed | NodeFlags.ImpliedEnd | NodeFlags.HtmlSelectScoped) { } } }