我有以下枚举:
public enum AuthenticationMethod
{
FORMS = 1,
WINDOWSAUTHENTICATION = 2,
SINGLESIGNON = 3
}
Run Code Online (Sandbox Code Playgroud)
然而问题是,当我要求AuthenticationMethod.FORMS而不是id 1时,我需要"FORMS"这个词.
我找到了以下解决此问题的方法(链接):
首先,我需要创建一个名为"StringValue"的自定义属性:
public class StringValue : System.Attribute
{
private readonly string _value;
public StringValue(string value)
{
_value = value;
}
public string Value
{
get { return _value; }
}
}
Run Code Online (Sandbox Code Playgroud)
然后我可以将此属性添加到我的枚举器:
public enum AuthenticationMethod
{
[StringValue("FORMS")]
FORMS = 1,
[StringValue("WINDOWS")]
WINDOWSAUTHENTICATION = 2,
[StringValue("SSO")]
SINGLESIGNON = 3
}
Run Code Online (Sandbox Code Playgroud)
当然我需要一些东西来检索StringValue:
public static class StringEnum
{
public static string GetStringValue(Enum value)
{ …Run Code Online (Sandbox Code Playgroud) MATLAB是否支持哈希表?
我正在研究Matlab中需要图像的缩放空间表示的问题.为此,我创建具有方差2-d高斯滤波器sigma*s^k用于k在一定范围内.,然后我使用每一个依次进行过滤图像.现在,我希望从k过滤后的图像中进行某种映射.
如果k总是一个整数,我只需创建一个3D数组,这样:
arr[k] = <image filtered with k-th guassian>
Run Code Online (Sandbox Code Playgroud)
但是,k不一定是整数,所以我不能这样做.我想做的是保持一系列的ks:
arr[find(array_of_ks_ = k)] = <image filtered with k-th guassian>
Run Code Online (Sandbox Code Playgroud)
一开始看起来似乎相当不错,除了我将使用大约20或30个值进行此次查找可能几千次k,并且我担心这会损害性能.
我想知道我是否会更好地使用某种哈希表来做这件事,这样我的查找时间就是O(1)而不是O(n).
现在,我知道我不应该过早优化,我可能根本没有这个问题,但请记住,这只是背景,并且可能存在这种情况,这确实是最佳解决方案,无论是否是我的问题的最佳解决方案.