C#List实体对象怎么合并,有序的情况下,上下行相同则进行合并

    List<string> list = new List<string>();
        list.Add("1");
        list.Add("1");
        list.Add("3");
        list.Add("4");
        list.Add("4");
        list.Add("2");
        list.Add("6");
        list.Add("2");
        list.Add("2");

想得到结果
1
3
4
2
6
2


            List<string> list = new List<string>();

            list.Add("1");
            list.Add("1");
            list.Add("3");
            list.Add("4");
            list.Add("4");
            list.Add("2");
            list.Add("6");
            list.Add("2");
            list.Add("2");

            List<string> list2 = new List<string>();

            var i = 0;
            for (i = 0; i < list.Count; i++)
            {
                list2.Add(list[i]);
                if (i == list.Count - 1)
                {
                    break;
                }

                if (list[i] == list[i + 1])
                {
                    i++;

                }

            }

分组 list = list.GroupBy(x => x).Select(g=>g.Key). ToList();

        List<string> list = new List<string>();

        list.Add("1");
        list.Add("1");
        list.Add("3");
        list.Add("4");
        list.Add("4");
        list.Add("4");
        list.Add("2");
        list.Add("4");
        list.Add("6");
        list.Add("4");
        list.Add("2");
        list.Add("2");

        List<string> list2 = new List<string>();

        var i = 0;
        for (i = 0; i < list.Count; i++)
        {
            list2.Add(list[i]);
            if (i == list.Count - 1)
            {
                break;
            }

            for (var j = i + 1; j < list.Count; j++)
            {
                if (list[i] == list[j])
                {
                    i++;
                }
                else {
                    break;
                }

            }
        }