List<int> list = new List<int>(){3,5,12,1,14,20,7,1,11,8,2,13,15};将以上集合中,元素索引是连续的,并且元素是奇数的,提取出来提取结果为:{3,5}、{7,1,11}、{13,15}

解决方案 »

  1.   

    List<int[]> resultsList = new List<int[]>();
    List<int> list = new List<int>() { 3, 5, 12, 1, 14, 20, 7, 1, 11, 8, 2, 13, 15 };
    int flag = 1, index = 1;
    list.Concat(new int[] { 0 }).Aggregate((pre, current) =>
    {
    if (current % 2 == 1 && pre % 2 == 1)
    flag++;
    else
    {
    if (flag > 1)
    {
    int[] results = list.Where((x, y) => y >= index - flag && y < index).ToArray();
    resultsList.Add(results);
    flag = 1;
    }
    }
    index++;
    return current;
    });
    foreach (int[] results in resultsList)
    {
    string s = "{" + string.Join(",", results.Select(x => x.ToString()).ToArray()) + "}";
    Console.WriteLine(s);
    }
    {3,5}
    {7,1,11}
    {13,15}
    给分吧。