VB.NET LIKE运算符在C#中的等效实现方案咨询
C#替代VB.NET LIKE运算符的方案
对于你要迁移的VB.NET字符范围判断逻辑,C#里有两种实用方案可选:
方案1:正则表达式(通用LIKE场景)
VB的Like "[A-D]"这类匹配模式,完全可以用C#的Regex.IsMatch实现,正则语法和VB Like的模式兼容度很高,直接复用原模式即可:
using System.Text.RegularExpressions; // 对应原VB的判断逻辑 if (Regex.IsMatch(item, "^[A-D]$")) { // 此处写原逻辑代码 } if (Regex.IsMatch(item, "^[E-H]$")) { // 此处写原逻辑代码 } if (Regex.IsMatch(item, "^[I-M]$")) { // 此处写原逻辑代码 } if (Regex.IsMatch(item, "^[N-V]$")) { // 此处写原逻辑代码 }
注:^和$是正则的起始/结束标记,确保整个字符串(这里是单个字符)完全匹配,避免出现部分匹配的意外情况。
方案2:直接字符范围比较(单个字符场景更高效)
因为你的判断都是针对单个字符的区间,直接通过字符的ASCII值比较会比正则更高效,代码也更直观:
// 假设item是单个字符的字符串,若为char类型可直接使用 if (item.Length != 1) { // 处理非单个字符的情况,比如跳过或抛出提示 return; } char c = item[0]; if (c >= 'A' && c <= 'D') { // 此处写原逻辑代码 } if (c >= 'E' && c <= 'H') { // 此处写原逻辑代码 } if (c >= 'I' && c <= 'M') { // 此处写原逻辑代码 } if (c >= 'N' && c <= 'V') { // 此处写原逻辑代码 }
内容的提问来源于stack exchange,提问作者Vinícius PUC
相关产品推荐
相关产品推荐

