我有:
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
如何判断字符串a是否包含值1而不是任何1?
答案 0 :(得分:5)
您可以使用此扩展方法。请记住,如果您的输入字符串有任何问题,那么这将抛出异常,您可以根据需要添加异常处理。 (比如使用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);
}
}
这会将您的字符串拆分为,
,因此您将拥有所有数字,但是以字符串形式显示。然后尝试将它们转换为整数值。之后,检查这些值是否包含所需的整数值。
像这样使用它
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
如果你想在没有扩展方法的情况下使用它,你可以这样做
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
答案 1 :(得分:0)
如果您确定您的字符串不包含空格,您可以使用它:
public static class StringExtension
{
public static bool ContainsValue(this string str, object value)
{
return str.StartsWith(value.ToString()+",") || str.EndsWith(","+value) || str.Contains(","+value+",");
}
}
答案 2 :(得分:-1)
private bool IsFound(string input)
{
string[] a1_values = input.Split(',');
foreach (string item in a1_values)
{
if (item == "1")
{
return true;
}
else
{
return false;
}
}