Files
HCoreLib/Commons/DictionaryUxer.cs
2026-06-01 12:28:44 +09:00

56 lines
1.8 KiB
C#

using KssSmaPlaLib.IO.File;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace KssSmaPlaLib.Commons
{
public static class DictionaryUxer
{
// /// <summary>
// /// 指定されたキーに対応する値(string)を取得します。キーが存在しない場合は 指定されたデフォルト値(未指定時はnull) を返します。
// /// </summary>
// public static TValue GetValueOrDefault<TKey, TValue>(
// Dictionary<TKey, TValue> dict,
// TKey key,
// TValue defaultValue = default)
// {
// return dict.TryGetValue(key, out TValue value) ? value : defaultValue;
// }
public static bool CreateNameToIdDic(string pcsv, out Dictionary<string,int> dic, out string resultMessage)
{
resultMessage = string.Empty;
dic = new Dictionary<string,int>();
if (string.IsNullOrEmpty(pcsv)) return true;
var csvArray = pcsv.Split('|');
foreach (var csv in csvArray)
{
var items = csv.Split(',');
if (items.Length != 2)
{
resultMessage = $"要素数が{items.Length}個のCSVあり[CSV:{csv}]";
return false;
}
// IDの数値チェック
if (!int.TryParse(items[1], out int id))
{
resultMessage = $"IDが数値でないCSVあり[CSV:{csv}]";
return false;
}
// Nameのカンマ記号復元
items[0] = items[0].Replace("@@@COMMA@@@", ",");
dic[items[0]] = id;
}
return true;
}
}
}