解释字段类型以激活c#中的复选框
本文关键字:复选框 激活 字段 类型 解释 | 更新日期: 2023-09-27 18:04:35
我在构建一个好的算法时遇到了一些困难。以下是我的标准:我将xml文件中的一个字段作为字符串读取,并试图对其进行解释,以便激活一些gui组件。更具体地说,我以字符串形式读入的字段是一个"允许字符"字段,gui组件是根据字段内容激活的复选框。例如,在xml中,我有标签
<Allowed Field>ABCDEFGHIJKLMNOPQRSTUVWXYZ</Allowed Fields>.
当我将该字段作为字符串读取时,程序应该知道字段内容类型是ALPHA,并选中名为ALPHA的复选框。同样,如果字段包含字母数字内容或任何特殊字符。我有三个复选框,算法应该解释:字母、字母数字和特殊字符。我如何构建算法,将我从xml中读取的字符串的含义解释为所提到的字段类型?
感谢
这是Regex的另一个可能应用程序。
static Regex isAlpha = new Regex("^[A-Za-z]+$");
static Regex isAlphaNumeric = new Regex("^[A-Za-z0-9]+$");
static FieldKind AnalyzeKind (string s)
{
if(isAlpha.IsMatch(s)) return FieldKind.Alpha;
if(isAlphaNumeric.IsMatch(s)) return FieldKind.AlphaNumeric;
return FieldKind.AlphaNumericWithSpecialCharacters;
}
如果你打算在程序中大量调用AnalyseKind,你可以通过在Regex构造函数中设置RegexOptions.Compiled来加快速度。
static FieldKind AnalyzeKind (string s)
{
bool hasNumbers, hasSpecial;
foreach (char c in s) {
if (Char.IsNumber (c))
hasNumbers = true;
else if (!Char.IsLetter (c))
return FieldKind.AlphaNumericWithSpecialCharacters;
}
return (hasNumbers) ? FieldKind.AlphaNumeric : FieldKind.Alpha;
}
其余的取决于您定义的特殊字符(例如,什么是空白?标点符号?(Char
方法供您参考。