有懂C#的VB没,帮忙把这个方法转成C#下吧,小女万分感谢

有懂C#的VB大虾没,帮忙把这个方法转成C#下吧,小女万分感谢.
                long   length_string,step_string,asc_char,i
                string   pym_string,pym,char_string
                //   取得字符串长度  
                length_string   =   len(hz_cluster)
                  //   设定初始值
                  i   =   1
                  pym_string   =   ' '
                  do   until   i   >   length_string
char_string   =   mid(hz_cluster,i,1)
asc_char   =   asc(char_string)
//   设定默认步长
step_string   =   1
if   asc_char   >   64   and   asc_char   <   91   then                         //   大写字母
pym   =   char_string
elseif   asc_char   >   96   and   asc_char   <   123   then               //   小写字母
pym   =   char_string
elseif   asc_char   >   47   and   asc_char   <   58   then                 //   数字
pym   =   char_string
elseif   asc_char   >   127   then                                                   //   汉字,步长为2
char_string   =   mid(hz_cluster,i,2)
select   pym   into   :pym   from   sys_hzk   where   hz=:char_string;
If   Sqlca.sqlcode   <>   0   Then   pym   =   '* '
pym   =   mid(pym,1,1)
step_string   =   2
else                                                                                               //   其它字符
pym   =   ' '
end   if
i   =   i   +   step_string
pym_string   =   pym_string   +   pym
                    loop
                  //   以小写方式返回
                    return   left(upper(pym_string),12)

------解决方案--------------------
C# code

{
    long  length_string = 0, step_string = 0,  i;//asc_char = 0,
    string  pym_string = string.empty, pym = string.empty;
    char char_string = "";
    //   取得字符串长度  
    length_string = hz_cluster.Length;
    //   设定初始值
    i = 1;
    //pym_string   =   ' ' 上面已赋初值
    while(i > length_string)
    {
        char_string = hz_cluster.Substring(i,1);
        //asc_char = asc(char_string)
        //   设定默认步长
        step_string   =   1
        if ((char_string > 64) && (char_string < 91))//   大写字母
        {
            pym = char_string;
        }   
        else if ((char_string > 96) && (char_string < 123))              //   小写字母
        {
            pym = char_string;
        }
        else if ((char_string > 47) && (char_string < 58))              //   数字
        {
            pym = char_string;
        }
        else if (char_string > 127)                             //   汉字,步长为2
        {
            char_string = hz_cluster.Substring(i,2);
           ////////////////////////////////////////////////////////////
           /* select pym into :pym from sys_hzk where hz=:char_string;*/
           //这句是从数据库查询?
            if(Sqlca.sqlcode <> 0) 
            {
                pym = "*";
            }
            pym = pym.Substring(1,1);
            step_string   =   2
        }       
        else
        {//   其它字符
            pym = "";
        }
        i += step_string;
        pym_string = pym_string + pym;
    }
    //   以小写方式返回
    return  pym_string.ToLower().Substring(0,12);
}