遍历list,做如下操作即可
1. 第二个和第一个对比如果是上升这记录上升,并将结果保存到一个临时变量
2.第三个和第二个对比如果对比结果和临时变量不一致则记录当前结果,吧结果保存到临时变量,如果对比结果一致则不做处理。

解决方案 »

  1.   


    for int i=0 i<list.count i++
    {
    var x=list[i];
    cw(i==0?"起":(x>list[i-1]?"上升":"下降"));
    }
      

  2.   


                List<int> list = new List<int>();
                list.Add(15);
                list.Add(12);
                list.Add(16);
                list.Add(14);
                list.Add(13);
                list.Add(10);
                list.Add(18);
                for (int i = 0; i < list.Count; i++)
                {
                    var x = list[i];
                    Response.Write(i == 0 ? "起<br>" : (x > list[i - 1] ? "上升" : "下降")+"<br>");
                }
    得到

    下降
    上升
    下降
    下降
    下降
    上升
    应该和你胃口吧..
      

  3.   

    可能我表达的不够清楚,像我上面给出的数字组,其实就是4段趋势,就是 上升->下降->上升->下降 . 例如数字 2 ,5,10,其实他们都是上升的,只需出现一次上升就行了.怎么写才能达到这样的效果呢?
      

  4.   

    把“上升”“下降”放到一个新的list中,遍历,如果和前一个一样就remove掉,最终的list应该就是你想要的了
      

  5.   


                List<double> list = new List<double> { 39.5, 41.5, 43.5, 50, 48, 48.5, 49, 49.5, 48.5, 47.5, 46.5 };
                int trend = 0;
                for (int i = 1; i < list.Count; i++)
                {
                    if (trend == 0)
                    {
                        if (list[i] > list[i - 1])
                        {
                            trend = 1;
                            Console.WriteLine("上升");
                        }
                        else
                        {
                            trend = -1;
                            Console.WriteLine("下降");
                        }
                    }
                    else if (trend == 1 && list[i] < list[i - 1])
                    {
                        Console.WriteLine("下降");
                        trend = -1;
                    }
                    else if (trend == -1 && list[i] > list[i - 1])
                    {
                        Console.WriteLine("上升");
                        trend = 1;
                    }
                }
      

  6.   


                List<int> list = new List<int>();
                list.Add(15);
                list.Add(12);
                list.Add(16);
                list.Add(14);
                list.Add(13);
                list.Add(10);
                list.Add(18);            List <string> result=new List<string> ();
               for(int i=0;i<list.Count;i++)
               {
                   if (i == 0)
                       result.Add("Start");
                   else if (list[i] > list[i - 1] && result.Last() != "Up")
                       result.Add("Up");
                   else if (list[i] < list[i - 1] && result.Last() != "Down")
                       result.Add("Down");
               }