比如,有个这样的字符串:string str="Add,Del,,Edit,Add,List,,,,Query,List,Audit";
我要得到的是这样的字符串:"Add,Del,Edit,List,Query,Audit"(如果能实现List放在第一个位置更好),请大家帮忙

解决方案 »

  1.   

    string result=System.Text.RegularExpressions.Regex.Replace(str,",{2,}",",");
      

  2.   

    正则好用啊 
    可惜我不会 来个笨点的办法吧string[] tmp=str.Split(',');
    string strOut="";
    foreach(string st in tmp)
    {
        if(st!="")
        {
           strOut+=st;
         }}strOut=strOut.SubString(0,strOut.Length-2);
      

  3.   

    string[] str=System.Text.RegularExpressions.Regex.Split(str,",+");
    List<string> list=new List<string>(str);
    string result=string.Empty;
    foreach(string s in list.Distinct())
    {
     result+=s+",";
    }
    result=result.TrimEnd(',');
      

  4.   

    用String.Split()方法的重载, 以字符','分组, 顺便可以按照某种顺序排序, 比如字母表顺序.
      

  5.   


    我在2005下调试显示这样的信息:“System.Collections.Generic.List<string>”并不包含“Distinct”的定义
      

  6.   

    来一段LINQ代码            string source = "Add,Del,,Edit,Add,List,,,,Query,List,Audit";
                string destination = string.Join(",", (from substr in source.Split(',')
                                                       where !string.IsNullOrEmpty(substr)
                                                       select substr).Distinct().ToArray());
      

  7.   

    .net3.5 才有Distinct
    http://msdn.microsoft.com/zh-cn/library/bb348436(VS.95).aspx
      

  8.   

    非常感谢大家,公司用的是2008,回到公司再试下,现在在家里用2005,已经搞定了,用了两个for,算是费了九牛二虎之力,马上结贴
      

  9.   

    String str = "Add,Del,,Edit,Add,List,,,,Query,List,Audit";
                String[] strIn = str.Split(',');
                for (int i = 0; i < strIn.Length - 1; i++)
                {
                    for (int j = i + 1; j < strIn.Length; j++)
                    {
                        if (strIn[i] == strIn[j])
                        {
                            strIn[j] = null;
                        }
                    }
                }
                foreach (String strOut in strIn)
                {
                    if (strOut != null)
                    {
                        Console.WriteLine(strOut);
                    }            }
      

  10.   

    string[] str=System.Text.RegularExpressions.Regex.Split(str,",+");
    List<string> list=new List<string>(str);
    List<string> list2=new List<string>();
    string result=string.Empty;
    foreach(string s in list)
    {
     if (!list2.Contains(s))
     {
      result+=s+",";
      list2.Add(s);
     }
    }
    result=result.TrimEnd(',');