循环所有常量

Gee*_*eth 4 c# asp.net loops constants

我想从静态类循环所有常量变量.例如

public class SiteDetails
{
    public const string SD_MAIN_TRUST = "MainTrust";
    public const string SD_MAIN_COLLEGE = "MainCollege";
}
Run Code Online (Sandbox Code Playgroud)

我想逐个读取常量来检查匹配.

Ser*_*kiy 9

获取您的类型的所有公共静态字段:

Type type = typeof(SiteDetails);
var flags = BindingFlags.Static | BindingFlags.Public;
var fields = type.GetFields(flags); // that will return all fields of any type
Run Code Online (Sandbox Code Playgroud)

IsLiteral如果要仅检查常量,可以添加过滤.

var fields = type.GetFields(flags).Where(f => f.IsLiteral);
Run Code Online (Sandbox Code Playgroud)

然后检查任何字段的值是否等于您的值:

string value = "MainCollege"; // your value
bool match = fields.Any(f => value.Equals(f.GetValue(null)));
Run Code Online (Sandbox Code Playgroud)