Class CopyrightNotice.YearItem
Container for either a year or a year range (like 2025–2026).
public abstract record CopyrightNotice.YearItem : IEquatable<CopyrightNotice.YearItem>
- Inheritance
-
CopyrightNotice.YearItem
- Implements
- Derived
- Inherited Members
Methods
MergeCompact(IEnumerable<YearItem>, IEnumerable<YearItem>)
Merges two year sequences into the most compact sequence describing exactly the same set of years:
duplicates are removed, and overlapping or adjacent items are joined (e.g. 2022, 2023, and
2024 become 2022–2024). Gaps between the years are preserved.
public static IEnumerable<CopyrightNotice.YearItem> MergeCompact(IEnumerable<CopyrightNotice.YearItem> first, IEnumerable<CopyrightNotice.YearItem> second)
Parameters
firstIEnumerable<CopyrightNotice.YearItem>The first sequence of years.
secondIEnumerable<CopyrightNotice.YearItem>The second sequence of years.
Returns
- IEnumerable<CopyrightNotice.YearItem>
The merged items, sorted in ascending order.
Remarks
Reversed ranges (e.g. 2027–2026) are treated as if their bounds were in order. Ranges covering only
one year are returned as CopyrightNotice.YearItem.SingleYear.
MergeExpansive(IEnumerable<YearItem>, IEnumerable<YearItem>)
Merges two year sequences into a single item covering every year from both of them, filling any gaps
(e.g. 2020, 2024–2025 and 2022 become 2020–2025).
public static CopyrightNotice.YearItem? MergeExpansive(IEnumerable<CopyrightNotice.YearItem> first, IEnumerable<CopyrightNotice.YearItem> second)
Parameters
firstIEnumerable<CopyrightNotice.YearItem>The first sequence of years.
secondIEnumerable<CopyrightNotice.YearItem>The second sequence of years.
Returns
- CopyrightNotice.YearItem
A CopyrightNotice.YearItem.SingleYear if all the input years are the same, a CopyrightNotice.YearItem.YearRange otherwise, or
nullif both sequences are empty.
Remarks
Reversed ranges (e.g. 2027–2026) are treated as if their bounds were in order.