56 lines
1.8 KiB
C#
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;
|
|
}
|
|
}
|
|
}
|