diff --git a/VisualCard.Calendar/Parts/Calendar.cs b/VisualCard.Calendar/Parts/Calendar.cs index 61e414eb..4919c7f9 100644 --- a/VisualCard.Calendar/Parts/Calendar.cs +++ b/VisualCard.Calendar/Parts/Calendar.cs @@ -19,6 +19,7 @@ using System; using System.Collections.Generic; +using System.Collections.ObjectModel; using System.Diagnostics; using System.IO; using System.Linq; @@ -97,6 +98,24 @@ public class Calendar : IEquatable public CalendarOtherComponent[] Others => [.. others]; + /// + /// Part array list in a dictionary (for enumeration operations) + /// + public virtual ReadOnlyDictionary> PartsArray => + new(partsArray.ToDictionary((kvp) => kvp.Key, (kvp) => kvp.Value.AsReadOnly())); + + /// + /// String list in a dictionary (for enumeration operations) + /// + public virtual ReadOnlyDictionary>> Strings => + new(strings.ToDictionary((kvp) => kvp.Key, (kvp) => kvp.Value.AsReadOnly())); + + /// + /// Integer list in a dictionary (for enumeration operations) + /// + public virtual ReadOnlyDictionary>> Integers => + new(integers.ToDictionary((kvp) => kvp.Key, (kvp) => kvp.Value.AsReadOnly())); + /// /// Gets a part array from a specified key /// diff --git a/VisualCard.Calendar/Parts/CalendarAlarm.cs b/VisualCard.Calendar/Parts/CalendarAlarm.cs index cddb4c4c..a627db13 100644 --- a/VisualCard.Calendar/Parts/CalendarAlarm.cs +++ b/VisualCard.Calendar/Parts/CalendarAlarm.cs @@ -19,7 +19,9 @@ using System; using System.Collections.Generic; +using System.Collections.ObjectModel; using System.Diagnostics; +using System.Linq; using VisualCard.Calendar.Parsers; using VisualCard.Calendar.Parts.Comparers; using VisualCard.Calendar.Parts.Enums; @@ -36,6 +38,24 @@ public class CalendarAlarm : Calendar, IEquatable private readonly Dictionary>> strings = []; private readonly Dictionary>> integers = []; + /// + /// Part array list in a dictionary (for enumeration operations) + /// + public override ReadOnlyDictionary> PartsArray => + new(partsArray.ToDictionary((kvp) => kvp.Key, (kvp) => kvp.Value.AsReadOnly())); + + /// + /// String list in a dictionary (for enumeration operations) + /// + public override ReadOnlyDictionary>> Strings => + new(strings.ToDictionary((kvp) => kvp.Key, (kvp) => kvp.Value.AsReadOnly())); + + /// + /// Integer list in a dictionary (for enumeration operations) + /// + public override ReadOnlyDictionary>> Integers => + new(integers.ToDictionary((kvp) => kvp.Key, (kvp) => kvp.Value.AsReadOnly())); + /// /// Gets a part array from a specified key /// diff --git a/VisualCard.Calendar/Parts/CalendarDaylight.cs b/VisualCard.Calendar/Parts/CalendarDaylight.cs index da775f5b..6ed1a1a6 100644 --- a/VisualCard.Calendar/Parts/CalendarDaylight.cs +++ b/VisualCard.Calendar/Parts/CalendarDaylight.cs @@ -19,7 +19,9 @@ using System; using System.Collections.Generic; +using System.Collections.ObjectModel; using System.Diagnostics; +using System.Linq; using VisualCard.Calendar.Parsers; using VisualCard.Calendar.Parts.Comparers; using VisualCard.Calendar.Parts.Enums; @@ -36,6 +38,24 @@ public class CalendarDaylight : Calendar, IEquatable private readonly Dictionary>> strings = []; private readonly Dictionary>> integers = []; + /// + /// Part array list in a dictionary (for enumeration operations) + /// + public override ReadOnlyDictionary> PartsArray => + new(partsArray.ToDictionary((kvp) => kvp.Key, (kvp) => kvp.Value.AsReadOnly())); + + /// + /// String list in a dictionary (for enumeration operations) + /// + public override ReadOnlyDictionary>> Strings => + new(strings.ToDictionary((kvp) => kvp.Key, (kvp) => kvp.Value.AsReadOnly())); + + /// + /// Integer list in a dictionary (for enumeration operations) + /// + public override ReadOnlyDictionary>> Integers => + new(integers.ToDictionary((kvp) => kvp.Key, (kvp) => kvp.Value.AsReadOnly())); + /// /// Gets a part array from a specified key /// diff --git a/VisualCard.Calendar/Parts/CalendarEvent.cs b/VisualCard.Calendar/Parts/CalendarEvent.cs index f7e40112..cf70ded4 100644 --- a/VisualCard.Calendar/Parts/CalendarEvent.cs +++ b/VisualCard.Calendar/Parts/CalendarEvent.cs @@ -19,7 +19,9 @@ using System; using System.Collections.Generic; +using System.Collections.ObjectModel; using System.Diagnostics; +using System.Linq; using VisualCard.Calendar.Parsers; using VisualCard.Calendar.Parts.Comparers; using VisualCard.Calendar.Parts.Enums; @@ -37,6 +39,24 @@ public class CalendarEvent : Calendar, IEquatable private readonly Dictionary>> strings = []; private readonly Dictionary>> integers = []; + /// + /// Part array list in a dictionary (for enumeration operations) + /// + public override ReadOnlyDictionary> PartsArray => + new(partsArray.ToDictionary((kvp) => kvp.Key, (kvp) => kvp.Value.AsReadOnly())); + + /// + /// String list in a dictionary (for enumeration operations) + /// + public override ReadOnlyDictionary>> Strings => + new(strings.ToDictionary((kvp) => kvp.Key, (kvp) => kvp.Value.AsReadOnly())); + + /// + /// Integer list in a dictionary (for enumeration operations) + /// + public override ReadOnlyDictionary>> Integers => + new(integers.ToDictionary((kvp) => kvp.Key, (kvp) => kvp.Value.AsReadOnly())); + /// /// Alarm list /// diff --git a/VisualCard.Calendar/Parts/CalendarFreeBusy.cs b/VisualCard.Calendar/Parts/CalendarFreeBusy.cs index ecdd039a..e238111a 100644 --- a/VisualCard.Calendar/Parts/CalendarFreeBusy.cs +++ b/VisualCard.Calendar/Parts/CalendarFreeBusy.cs @@ -19,7 +19,9 @@ using System; using System.Collections.Generic; +using System.Collections.ObjectModel; using System.Diagnostics; +using System.Linq; using VisualCard.Calendar.Parsers; using VisualCard.Calendar.Parts.Comparers; using VisualCard.Calendar.Parts.Enums; @@ -36,6 +38,24 @@ public class CalendarFreeBusy : Calendar, IEquatable private readonly Dictionary>> strings = []; private readonly Dictionary>> integers = []; + /// + /// Part array list in a dictionary (for enumeration operations) + /// + public override ReadOnlyDictionary> PartsArray => + new(partsArray.ToDictionary((kvp) => kvp.Key, (kvp) => kvp.Value.AsReadOnly())); + + /// + /// String list in a dictionary (for enumeration operations) + /// + public override ReadOnlyDictionary>> Strings => + new(strings.ToDictionary((kvp) => kvp.Key, (kvp) => kvp.Value.AsReadOnly())); + + /// + /// Integer list in a dictionary (for enumeration operations) + /// + public override ReadOnlyDictionary>> Integers => + new(integers.ToDictionary((kvp) => kvp.Key, (kvp) => kvp.Value.AsReadOnly())); + /// /// Gets a part array from a specified key /// diff --git a/VisualCard.Calendar/Parts/CalendarJournal.cs b/VisualCard.Calendar/Parts/CalendarJournal.cs index b7ebeec6..dba8953e 100644 --- a/VisualCard.Calendar/Parts/CalendarJournal.cs +++ b/VisualCard.Calendar/Parts/CalendarJournal.cs @@ -19,7 +19,9 @@ using System; using System.Collections.Generic; +using System.Collections.ObjectModel; using System.Diagnostics; +using System.Linq; using VisualCard.Calendar.Parsers; using VisualCard.Calendar.Parts.Comparers; using VisualCard.Calendar.Parts.Enums; @@ -36,6 +38,24 @@ public class CalendarJournal : Calendar, IEquatable private readonly Dictionary>> strings = []; private readonly Dictionary>> integers = []; + /// + /// Part array list in a dictionary (for enumeration operations) + /// + public override ReadOnlyDictionary> PartsArray => + new(partsArray.ToDictionary((kvp) => kvp.Key, (kvp) => kvp.Value.AsReadOnly())); + + /// + /// String list in a dictionary (for enumeration operations) + /// + public override ReadOnlyDictionary>> Strings => + new(strings.ToDictionary((kvp) => kvp.Key, (kvp) => kvp.Value.AsReadOnly())); + + /// + /// Integer list in a dictionary (for enumeration operations) + /// + public override ReadOnlyDictionary>> Integers => + new(integers.ToDictionary((kvp) => kvp.Key, (kvp) => kvp.Value.AsReadOnly())); + /// /// Gets a part array from a specified key /// diff --git a/VisualCard.Calendar/Parts/CalendarOtherComponent.cs b/VisualCard.Calendar/Parts/CalendarOtherComponent.cs index 00e81ca3..77c7c750 100644 --- a/VisualCard.Calendar/Parts/CalendarOtherComponent.cs +++ b/VisualCard.Calendar/Parts/CalendarOtherComponent.cs @@ -19,7 +19,9 @@ using System; using System.Collections.Generic; +using System.Collections.ObjectModel; using System.Diagnostics; +using System.Linq; using VisualCard.Calendar.Parsers; using VisualCard.Calendar.Parts.Comparers; using VisualCard.Calendar.Parts.Enums; @@ -37,6 +39,24 @@ public class CalendarOtherComponent : Calendar, IEquatable>> strings = []; private readonly Dictionary>> integers = []; + /// + /// Part array list in a dictionary (for enumeration operations) + /// + public override ReadOnlyDictionary> PartsArray => + new(partsArray.ToDictionary((kvp) => kvp.Key, (kvp) => kvp.Value.AsReadOnly())); + + /// + /// String list in a dictionary (for enumeration operations) + /// + public override ReadOnlyDictionary>> Strings => + new(strings.ToDictionary((kvp) => kvp.Key, (kvp) => kvp.Value.AsReadOnly())); + + /// + /// Integer list in a dictionary (for enumeration operations) + /// + public override ReadOnlyDictionary>> Integers => + new(integers.ToDictionary((kvp) => kvp.Key, (kvp) => kvp.Value.AsReadOnly())); + /// /// Component name /// diff --git a/VisualCard.Calendar/Parts/CalendarStandard.cs b/VisualCard.Calendar/Parts/CalendarStandard.cs index 308d3f2f..cbedd95b 100644 --- a/VisualCard.Calendar/Parts/CalendarStandard.cs +++ b/VisualCard.Calendar/Parts/CalendarStandard.cs @@ -19,7 +19,9 @@ using System; using System.Collections.Generic; +using System.Collections.ObjectModel; using System.Diagnostics; +using System.Linq; using VisualCard.Calendar.Parsers; using VisualCard.Calendar.Parts.Comparers; using VisualCard.Calendar.Parts.Enums; @@ -36,6 +38,24 @@ public class CalendarStandard : Calendar, IEquatable private readonly Dictionary>> strings = []; private readonly Dictionary>> integers = []; + /// + /// Part array list in a dictionary (for enumeration operations) + /// + public override ReadOnlyDictionary> PartsArray => + new(partsArray.ToDictionary((kvp) => kvp.Key, (kvp) => kvp.Value.AsReadOnly())); + + /// + /// String list in a dictionary (for enumeration operations) + /// + public override ReadOnlyDictionary>> Strings => + new(strings.ToDictionary((kvp) => kvp.Key, (kvp) => kvp.Value.AsReadOnly())); + + /// + /// Integer list in a dictionary (for enumeration operations) + /// + public override ReadOnlyDictionary>> Integers => + new(integers.ToDictionary((kvp) => kvp.Key, (kvp) => kvp.Value.AsReadOnly())); + /// /// Gets a part array from a specified key /// diff --git a/VisualCard.Calendar/Parts/CalendarTimeZone.cs b/VisualCard.Calendar/Parts/CalendarTimeZone.cs index 277a1087..f268d372 100644 --- a/VisualCard.Calendar/Parts/CalendarTimeZone.cs +++ b/VisualCard.Calendar/Parts/CalendarTimeZone.cs @@ -19,7 +19,9 @@ using System; using System.Collections.Generic; +using System.Collections.ObjectModel; using System.Diagnostics; +using System.Linq; using VisualCard.Calendar.Parsers; using VisualCard.Calendar.Parts.Comparers; using VisualCard.Calendar.Parts.Enums; @@ -38,6 +40,24 @@ public class CalendarTimeZone : Calendar, IEquatable private readonly Dictionary>> strings = []; private readonly Dictionary>> integers = []; + /// + /// Part array list in a dictionary (for enumeration operations) + /// + public override ReadOnlyDictionary> PartsArray => + new(partsArray.ToDictionary((kvp) => kvp.Key, (kvp) => kvp.Value.AsReadOnly())); + + /// + /// String list in a dictionary (for enumeration operations) + /// + public override ReadOnlyDictionary>> Strings => + new(strings.ToDictionary((kvp) => kvp.Key, (kvp) => kvp.Value.AsReadOnly())); + + /// + /// Integer list in a dictionary (for enumeration operations) + /// + public override ReadOnlyDictionary>> Integers => + new(integers.ToDictionary((kvp) => kvp.Key, (kvp) => kvp.Value.AsReadOnly())); + /// /// Standard time list /// diff --git a/VisualCard.Calendar/Parts/CalendarTodo.cs b/VisualCard.Calendar/Parts/CalendarTodo.cs index 736c2b17..ce00c90f 100644 --- a/VisualCard.Calendar/Parts/CalendarTodo.cs +++ b/VisualCard.Calendar/Parts/CalendarTodo.cs @@ -19,7 +19,9 @@ using System; using System.Collections.Generic; +using System.Collections.ObjectModel; using System.Diagnostics; +using System.Linq; using VisualCard.Calendar.Parsers; using VisualCard.Calendar.Parts.Comparers; using VisualCard.Calendar.Parts.Enums; @@ -37,6 +39,24 @@ public class CalendarTodo : Calendar, IEquatable private readonly Dictionary>> strings = []; private readonly Dictionary>> integers = []; + /// + /// Part array list in a dictionary (for enumeration operations) + /// + public override ReadOnlyDictionary> PartsArray => + new(partsArray.ToDictionary((kvp) => kvp.Key, (kvp) => kvp.Value.AsReadOnly())); + + /// + /// String list in a dictionary (for enumeration operations) + /// + public override ReadOnlyDictionary>> Strings => + new(strings.ToDictionary((kvp) => kvp.Key, (kvp) => kvp.Value.AsReadOnly())); + + /// + /// Integer list in a dictionary (for enumeration operations) + /// + public override ReadOnlyDictionary>> Integers => + new(integers.ToDictionary((kvp) => kvp.Key, (kvp) => kvp.Value.AsReadOnly())); + /// /// Alarm list /// diff --git a/VisualCard/Parts/Card.cs b/VisualCard/Parts/Card.cs index 0aed99f6..32ebe07d 100644 --- a/VisualCard/Parts/Card.cs +++ b/VisualCard/Parts/Card.cs @@ -19,6 +19,7 @@ using System; using System.Collections.Generic; +using System.Collections.ObjectModel; using System.Diagnostics; using System.IO; using System.Linq; @@ -72,6 +73,18 @@ public class Card : IEquatable public CardKind CardKind => VcardCommonTools.GetKindEnum(CardKindStr); + /// + /// Part array list in a dictionary (for enumeration operations) + /// + public ReadOnlyDictionary> PartsArray => + new(partsArray.ToDictionary((kvp) => kvp.Key, (kvp) => kvp.Value.AsReadOnly())); + + /// + /// String list in a dictionary (for enumeration operations) + /// + public ReadOnlyDictionary>> Strings => + new(strings.ToDictionary((kvp) => kvp.Key, (kvp) => kvp.Value.AsReadOnly())); + /// /// Gets a part array from a specified key ///