从对象字典中检索泛型类型值,无异常
本文关键字:异常 泛型类型 对象字典 检索 | 更新日期: 2023-09-27 18:33:00
是否有一种通用方法(最好使用扩展方法)可以从Dictionary<string, object>
中检索转换为正确类型的值(可以是十进制、短整型、整数或字符串),而不会在键不存在时失败?
您可以执行以下操作:
using System;
using System.Collections.Generic;
public static class DictionaryExtensions
{
public static T GetValue<T>(this Dictionary<string, object> dictionary, string key)
{
object value = null;
if (!dictionary.TryGetValue(key, out value))
{
throw new KeyNotFoundException(key);
}
return (T)Convert.ChangeType(value, typeof(T));
}
}
编辑:如果您不希望它抛出任何内容,只需删除抛出新 KeyNotFoundException 的行。我发现这样做很方便,因为KeyNotFoundException永远不会包含未找到的列的friggin名称。这样,错误消息将是列名:-)