我想把查询到的一个dataset里面的一个通过符号分隔的字段按符号截取下来
然后通过循环赋给动态数组,去掉重复数据,再绑定到控件上
自己写了一点           for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
            {
                string gsn = ds.Tables[0].Rows[i]["goodsname"].ToString();
                string[] sArray = Regex.Split("gsn", "、");
            }然后我需要把截取出来的数据赋给动态数组,通过循环达到累增的目的,那么代码我需要怎么写呢?
然后又怎么去掉数组中重复数据呢?

解决方案 »

  1.   

    string[] sArray = Regex.Split("gsn", "、").Distinct().ToArray();
    or
    List<string> sArray = Regex.Split("gsn", "、").Distinct().ToList();
      

  2.   

    覆盖原来的。要保留这么做:
    sArray = sArray.Union(Regex.Split("gsn", "、").Distinct()).ToArray();
    把sArray定义在循环外面。
      

  3.   

    多谢!另外gsn不要打引号。
      

  4.   

    多谢!
    再问一下,为什么我这样写给我报 “使用了未赋值的局部变量“sArray””啊?
      

  5.   

    Quote: 引用 6 楼 qimengwubi 的回复:

    是我gsn打了引号,但是去了之后gsn又变成未命名的了,我在循环体里面声明了的呀?难道是因为循环体里面的是局部变量?
      

  6.   

    多谢!
    再问一下,为什么我这样写给我报 “使用了未赋值的局部变量“sArray””啊?
    string[] sArray = { };
      

  7.   

    Quote: 引用 9 楼 caozhy 的回复:
    string str = "Data Source=.\\SQLExpress;IntegratedSecurity=SSPI;AttachDBFilename=|DataDirectory|freight.mdf;Connect Timeout=30;User Instance=true;";
    string sql = "select goodsname from Sendgoodsname";
    SqlConnection conn = new SqlConnection(str);
    conn.Open();
    SqlDataAdapter sda = new SqlDataAdapter(sql, conn);
    DataSet ds = new DataSet();
    for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
       {
            string gsn = ds.Tables[0].Rows[i]["goodsname"].ToString();
        }
        string[] sArray;
        sArray = sArray.Union(Regex.Split(gsn, "、").Distinct()).ToArray();
      

  8.   

    交作业
    我改变了策略,先把这个字段拼成一个字符串,然后再截取片段赋值给数组就简单多了。            DataSet ds = new DataSet();
                sda.Fill(ds);
                string result = string.Empty;
                for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
                {
                   result += ds.Tables[0].Rows[i]["goodsname"].ToString() + "、"; 
                }
                result = result.Substring(0, result.Length - 1);
                string[] sArray = { };
                sArray = sArray.Union(Regex.Split(result, "、").Distinct()).ToArray();
                Repeater.DataSource = sArray;
                Repeater.DataBind();前台用<%#Container.DataItem%>绑定数组