我有:
var a1 = "1,2,12,13";
var a2 = "2,12,13";
var b1 = a1.Contains(1); // Should give true
var b2 = a2.Contains(1); // Should give false
Run Code Online (Sandbox Code Playgroud)
如何判断字符串a是否包含值1而不是任何1?
你可以使用这种扩展方法.请记住,如果您的输入字符串有任何问题,那么这将抛出异常,您可以根据需要添加异常处理.(比如使用int.TryParse或支持不同的分隔符而不是逗号)
public static class StringExtension
{
public static bool ContainsInt(this string str, int value)
{
return str.Split(new[] { ',' }, StringSplitOptions.RemoveEmptyEntries)
.Select(x => int.Parse(x.Trim()))
.Contains(value);
}
}
Run Code Online (Sandbox Code Playgroud)
这将拆分你的字符串,,所以你将拥有所有的数字,但在字符串表示.然后尝试将它们转换为整数值.之后,检查这些值是否包含所需的整数值.像这样使用它
var a1 = "1,2,12,13";
var a2 = "2,12,13";
var b1 = a1.ContainsInt(1); // gives true
var b2 = a2.ContainsInt(1); // gives false
Run Code Online (Sandbox Code Playgroud)
如果您想在没有扩展方法的情况下使用它,您可以执行此操作
var a1 = "1,2,12,13";
var a2 = "2,12,13";
var b1 = a1.Split(new[] { ',' }, StringSplitOptions.RemoveEmptyEntries)
.Select(x => int.Parse(x.Trim()))
.Contains(1); // gives true
var b2 = a2.Split(new[] { ',' }, StringSplitOptions.RemoveEmptyEntries)
.Select(x => int.Parse(x.Trim()))
.Contains(1); // gives false
Run Code Online (Sandbox Code Playgroud)