static void Main(string[] args)
  {
   ArrayList list = new ArrayList();
   
   list.Add("张三");
   list.Add("李四");
   list.Add("王五");
   list.Add("张三");
   list.Add("张");
   list.Add("李");   ArrayList itemList = new ArrayList();
   ArrayList discountList = new ArrayList();
   ArrayList newList = new ArrayList();
   
   foreach(object obj in list)
   {
    string str = obj.ToString();
    if(str.Length != 1)
     itemList.Add(str);
    else
     discountList.Add(str);
   }   bool isbool = true;
   foreach(object obj_item in itemList)
   {
    string item = obj_item.ToString();
    isbool = true;
    foreach(Object obj_dis in discountList)
    {
     string discount = obj_dis.ToString();
     if(item.Substring(0,1) == discount)
     {
      newList.Add(item);
      newList.Add("discount:"+discount);
      isbool = false;
     }
    }
    if(isbool)
     newList.Add(item);
   }   foreach(object obj in newList)
   {
    System.Console.WriteLine(obj.ToString());
    
   }
   System.Console.ReadLine();
  }
现在输出的结果是:
张三
discount:张
李四
discount:李
王五
张三
discount:张而我要的是:
张三
discount:张
李四
discount:李
王五
张三另外需要说明的是有可能出现的会是李,王并且可能更多,所以不能固定判断.List也不是固定的.. 

解决方案 »

  1.   

    对的,是个什么规律的意思??是说:最后一个discount:不要?还是已经有discount的姓,不要了??
      

  2.   

    下面这样就可以了 你执行了过多次的循环你的问题不是很明确 我也不能确定是不是 你要的答案
    static void Main(string[] args)
            {
                ArrayList list = new ArrayList();            list.Add("张三");
                list.Add("李四");
                list.Add("王五");
                list.Add("张三");
                list.Add("张");
                list.Add("李");            ArrayList itemList = new ArrayList();
                ArrayList discountList = new ArrayList();            foreach (object obj in list)
                {
                    string str = obj.ToString();
                    if (str.Length != 1)
                    {
                        Console.WriteLine(str);
                        if(list.Contains(str.Substring(0,1)))
                        {
                            if(!discountList.Contains(str.Substring(0,1)))
                            {
                                discountList.Add(str.Substring(0, 1));
                                Console.WriteLine("discount:"+str);
                            }
                        }
                    }
                    
                }            System.Console.ReadLine();
            }
      

  3.   

    谢谢.. 不过我想要的还可能是itemList与discount的关系是一对多.... 上面的需求你满足了..
    麻烦帮忙另外能一起实现下面的要求..
    ArrayList list = new ArrayList(); list.Add("张三");
    list.Add("李四");
    list.Add("王五");
    list.Add("赵六");
    list.Add("张三");
    list.Add("张");
    list.Add("李");
    list.Add("赵");
    list.Add("赵");
    需要打印出
    张三
    discount:张
    李四
    discount:李
    王五
    赵六
    discount:赵
    discount:赵
    张三//具体应该说discountList有多少个..则需要打印出多少个discount:*
    //*根据discountList的值与itemList的第一个字符作比较后等到的discount;
      

  4.   


    static void Main(string[] args)
            {
                List<string> list = new List<string>();            list.Add("张三");
                list.Add("李四");
                list.Add("王五");
                list.Add("赵六");
                list.Add("张三");
                list.Add("张");
                list.Add("李");
                list.Add("赵");
                list.Add("赵");            List<string> itemList = new List<string>();
                List<string> discountList = new List<string>();
                List<string> exsitList = new List<string>();
                foreach (string obj in list)
                {
                    if (obj.Length != 1)
                    {
                        itemList.Add(obj);
                    }
                    else
                    {
                        discountList.Add(obj);
                    }
                }            foreach (string obj in itemList)
                {
                    Console.WriteLine(obj);
                    if(!exsitList.Contains(obj.Substring(0,1)))
                    {
                        foreach (string discount in discountList)
                        {
                            if (discount.Trim() == obj.Trim().Substring(0, 1))
                            {
                                Console.WriteLine("discount:" + discount);
                                exsitList.Add(discount);
                            }                    }
                    }
                }            System.Console.ReadLine();
            }