Files
Fishing2/Assets/Scripts/Model/Common/Services/Settings/Base/OptionTable.cs
2025-08-29 09:11:08 +08:00

44 lines
1.2 KiB
C#

using System.Collections.Generic;
using System.Linq;
namespace NBF.Setting
{
public class OptionTable<T>
{
public struct OptionEntry
{
public string Name;
public T Value;
public OptionEntry(string name, T value)
{
this.Name = name;
this.Value = value;
}
}
List<OptionEntry> entries = new List<OptionEntry>();
public void Add(string name, T value)
{
entries.Add(new OptionEntry(name, value));
}
public List<string> GetNames() => entries.Select(x => x.Name).ToList();
public List<T> 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;
}
}
}