包含asp.net中的函数
我试图通过使用Contains函数比较两个字符串来增加计数。 我的密码是包含asp.net中的函数,asp.net,Asp.net,我试图通过使用Contains函数比较两个字符串来增加计数。 我的密码是 int count = 0; string strSize = ""; for (int i = 0; i < dts.Rows.Count; i++) { strSize += dts.Rows[i]["sizeid"].ToString() + ","; } if (strSize.Length > 0) strSize = strSize.Substring(0,
int count = 0;
string strSize = "";
for (int i = 0; i < dts.Rows.Count; i++)
{
strSize += dts.Rows[i]["sizeid"].ToString() + ",";
}
if (strSize.Length > 0)
strSize = strSize.Substring(0, strSize.Length - 1);
// After executing strSize="3,4,5,10"
if (strMainSize.Length > 0)
strMainSize = strMainSize.Substring(0, strMainSize.Length - 1);
// After executing strMainSize ="1,2,3,4,5,10,45"
strM = strMainSize.Split(',');
for (int s = 0; s < strM.Length; s++)
{
if (strSize.Contains(strM[s]))
{
count++;
chkSize.Items.FindByValue(strM[s]).Selected = true;
}
}
var totalCount = count;
int count=0;
字符串strSize=“”;
对于(int i=0;i0)
strSize=strSize.Substring(0,strSize.Length-1);
//执行strize=“3,4,5,10”后
如果(strMainSize.Length>0)
strMainSize=strMainSize.Substring(0,strMainSize.Length-1);
//执行strMainSize=“1,2,3,4,5,10,45”后
strM=strMainSize.Split(',');
对于(int s=0;s
执行此操作后,totalCount应该等于4,但它给了我5,这意味着当它第一次检查strSize.Contains(strM[s])的条件时,它得到的是true而不是false。
有谁能告诉我为什么会这样
其他事情当我在其他应用程序中执行相同操作时,它工作正常
我写的代码是
int count=0;
string[] str = { "3", "4", "5", "10"};
string[] strM = {"1","2","3","4","5","10","45","50" };
for (int s = 0; s < strM.Length; s++)
{
var stM = strM[s];
if (str.Contains(strM[s]))
{
count++;
chkSize.Items.FindByValue(strM[s]).Selected = true;
}
}
int totalCount = count;
int count=0;
字符串[]str={“3”、“4”、“5”、“10”};
字符串[]strM={“1”、“2”、“3”、“4”、“5”、“10”、“45”、“50”};
对于(int s=0;s
此处o/p:totalCount=4。
有人能告诉我两者的区别吗。
strize.Contains(strM[s])
为1返回true,因为1包含在字符串3,4,5,10
中。区别在于第一个代码查找子字符串,而第二个代码比较整个字符串
表达式
“3,4,5,10”。包含(“1”)
返回true。好的,这里是交易,第一个代码的strSize只是一个简单字符串,第二个代码的strSize是一个字符串数组
因此,当您在第一个代码中说.contains时,它将查看整个字符串,并检查您是否正在查找,因此“3,4,5,10”中包含1,而且如果您在第一个代码中尝试strSize.indexof(“10”),它将为您提供6。另一方面,如果您在第二个代码上尝试str.ToList().IndexOf(“10”),它将为您提供3。或者,如果您使用“1”,第一个代码仍将返回6,但第二个代码将返回-1,因为它没有找到元素“1”“在数组上。是的,正如Guffa所说,您正在搜索一个字符串,因此如果该字符串包含您的子字符串,它将返回true,您应该使用第二种方法,或者使用类似的代码进行修复
对于(int s=0;s
if(strSize.Contains(searchStr))
{
计数++;
chkSize.Items.FindByValue(strM[s]).Selected=true;
}
}
为了使此代码正常工作,如果您的代码只是为此目的编写的,则不应从strize中删除最后一个“,”
for (int s = 0; s < strM.Length; s++)
{
stirng searchStr = strM[s]+',';if (strSize.Contains(searchStr)) { count++; chkSize.Items.FindByValue(strM[s]).Selected = true; } }