想问下这两种方法有什么区别吗?

StringBuilder begin = new StringBuilder();
int index = 1;
foreach (char item in brxm)
{
if (item != '-')
{
index++;
begin.Append(string.Format("{0}", item));
}
else
{
break;
}
}
string end1 = brxm.Substring(index);
sqlStr.Append(string.Format("and(sampid >='{0}' and sampid <='{1}')", begin, end1));

                //string[] array = brxm.Split('-');
                //sqlStr.Append(string.Format("and(sampid >='{0}' and sampid<='{1}')",array[0],array[1]));

如果你的文本中只有一个"-",那么两者等价,如果有多个,那么前者会把第一个“-”之后的文本都包括到end1里。
再说,就算按照第一个写,也不需要循环,因为有现成的indexof函数可以得到某个字符的位置。总之第一个写法在你老板按照代码行数算工作量的情况下可以使用,否则别这么写。