现在有个模板:$a招聘$b专员$c工作以验(模板里的标签是不固定的可能还有$e,$f等标签,一个标签对应的是一个表)
$a要替换成:厦门,泉州等(数据表读出的)
$b>网站制作,网站建设等(数据表读出的)
$c>一年,两年等(数据表读出的)
模板可能还会有$d,$e(数据表读出的)等其它条件
这样我要做替换要怎么循环?比如
模板:$a招聘$b专员
$a对应表字段有:厦门,泉州
$b对应表字段:网站制作,网站建设
结果是以下这四条记录:
厦门招聘网站制作
厦门招聘网站建设
泉州招聘网站制作
泉州招聘网站建设我一开始是这样写
 for(标签1)
 {
   for(标签2){}
 }
这样就可以把上面的结果输入,但是我是在已知的标签数的情况下写出来的
假如有3个标签,我怎么让我的代码用3个for呢.这是我的思路不知道可不可以实现,如果可以请指点一下.如果有其他好的方法可以输入同样的结果.请说明.

解决方案 »

  1.   


                string template = "$a招聘$b专员$c工作以验";
                string[] templates = template.Split(new char[] { '$' }, StringSplitOptions.RemoveEmptyEntries);
                foreach (string s in templates)
                {
                    //do something
                }
      

  2.   

    先从模版 "$a招聘$b专员$c工作以验" 中读出有几个$ (比如N) 开一个数组 string[][] d=new string[N][];
    循环去读数据库,将读出的数据分别放入对应的数组中,填充d.然后把所有的二维的Length相乘得出所有的组合数.但是填充这个问题我一时没想好.应该是N个循环吧.
      

  3.   

    如果这种模板是嵌套的,那么解析也应该是递归性质的,
    就像刚才你说嵌套层次的不确定性,从2层嵌套到3层,所以不能简单得用一层for或者2层for来解决。
    建议你的格式是$函数名(值).
      

  4.   

    三个for啊~~
    for($a )
    {
       for($b)
       {
          for($C)
          {
              //循环一次,保存结果
          }
       }
    }
      

  5.   

    我上面不是有说明了,这种情况是在已知有三个标签.那如果里面标签是四个呢,
    怎么让代码再多一个FOR