MyException - 我的异常网
当前位置:我的异常网» C# » 请教,这个Link方法查询,如何写

请教,这个Link方法查询,如何写(2)

www.MyException.Cn  网友分享于:2013-02-21  浏览:10次

int flag = 0;
list.Where((x, y) =>
{
if (y < list.Count - 1 && (x % 2 == 1 && x + 2 == list[y + 1] 
------解决方案--------------------
 x % 2 == 1 && x - 2 == list[y - 1]))
{
flag++;
return true;
}
if (flag > 1)
{
int[] results = list.Where((xx, yy) => yy >= y - flag && yy < y).ToArray();
resultsList.Add(results);
flag = 0;
}
return false;
}).ToList().ForEach(x => Console.Write(x + " "));
Console.Write("<br/>" + "得到的各个序列为:<br/>");
foreach (int[] results in resultsList)
{
foreach (int result in results)
Console.Write(result + " ");
Console.WriteLine();
}
------解决方案--------------------
更正一下,修正最后2个元素是连续奇数的问题:
		List<int[]> resultsList = new List<int[]>();
List<int> list = new List<int>() { 6, 1,3, 0, 14, 5, 7, 9, 2, 1, 8, 3, 2, 8, 11, 13};
int flag = 0;
list.Where((x, y) =>
{
if (y < list.Count - 1 && (x % 2 == 1 && x + 2 == list[y + 1] 
------解决方案--------------------
 x % 2 == 1 && x - 2 == list[y - 1]))
{
flag++;
return true;
}
if (y == list.Count - 1 && flag > 0 && x % 2 == 1 && x - 2 == list[y - 1])
{
flag++;
int[] results = list.Where((xx, yy) => yy > y - flag && yy <= y).ToArray();
resultsList.Add(results);
flag = 0;
return true;
}
if (flag > 1)
{
int[] results = list.Where((xx, yy) => yy >= y - flag && yy < y).ToArray();
resultsList.Add(results);
flag = 0;
}
return false;
}).ToList().ForEach(x => Console.Write(x + " "));
Console.Write("\r\n" + "得到的各个序列为:\r\n");
foreach (int[] results in resultsList)
{
foreach (int result in results)
Console.Write(result + " ");
Console.WriteLine();
}

输出:
1 3 5 7 9 11 13 
得到的各个序列为:
1 3 
5 7 9 
11 13 

------解决方案--------------------
最后,我给个写法简单的:
		List<int[]> resultsList = new List<int[]>();
List<int> list = new List<int>() { 6, 1, 3, 0, 14, 5, 7, 9, 2, 1, 8, 3, 2, 8, 11, 13 };

文章评论

软件开发程序错误异常ExceptionCopyright © 2009-2015 MyException 版权所有