我很难理解如何找出病情。基本上我将列表中的信息转换为使用Contains和Regex的字符串。我需要弄清楚用户是否选择了“其他”选项,如果是,则执行某些操作。但是,在同一个列表中,还有其他值可供选择,也可以从“其他”开始。
示例数据:
示例代码:
if(MaterialList.ToString().Contains("Other"))
{
"Do This If Other Is Selected";
}
else
{
"Do That If Other Isn't Selected";
}
如果用户只选择“其他”,则工作正常,但如果用户未选择“其他”但选择“其他化学品”,则该条件仍然返回true。
我也尝试了以下内容,它的行为相同:
public static bool ExactMatch(string input, string match)
{
return Regex.IsMatch(input, string.Format(@"{0}", Regex.Escape(match)));
//actually doesn't find the exact match - just a portion of the string
}
可能不应使用包含或匹配但不确定如何解决问题。
答案 0 :(得分:1)
看起来你可以改用Linq:
if (MaterialList.Any(m => m == "Other"))
...
答案 1 :(得分:0)
您可以在案例中使用String.EndsWith()
功能
来自MSDN:
确定此字符串实例的结尾是否与。匹配 指定的字符串。
试试这个:
if(MaterialList.ToString().EndsWith("Other"))
{
"Do This If Other Is Selected";
}
else
{
"Do That If Other Isn't Selected";
}
答案 2 :(得分:0)
为什么不使用
public static bool ExactMatch(string input, string match)
{
return input == match;
}
或者你生病了do-everything-with-regex
?
答案 3 :(得分:0)
谢谢大家。想出来了。
if(MaterialsList.ToString().Split('\t').Contains("Other"))