using System.Collections.Generic; using System.Linq; namespace NBF.Setting { public class OptionTable { public struct OptionEntry { public string Name; public T Value; public OptionEntry(string name, T value) { this.Name = name; this.Value = value; } } List entries = new List(); public void Add(string name, T value) { entries.Add(new OptionEntry(name, value)); } public List GetNames() => entries.Select(x => x.Name).ToList(); public List GetValues() => entries.Select(x => x.Value).ToList(); public T GetValue(int index) { if (entries == null) return default; if (index < 0 || index >= entries.Count) return default; return entries[index].Value; } public string GetName(int index) { if (entries == null) return string.Empty; if (index < 0 || index >= entries.Count) return string.Empty; return entries[index].Name; } } }