日期:2014-05-17  浏览次数:20566 次

asp.net 判断数字是否连续
判断1-12之间的数字是否连续,比如说:7,8,12就不连续
asp.net

------解决方案--------------------
int[] data = { 1, 3, 5, 7, 8 };
bool result = data.GroupBy(x => x).Count() - 1 == data.Max() - data.Min();
------解决方案--------------------
如果是不重复,连续,就是
bool result = data.GroupBy(x => x).Count() - 1 == data.Max() - data.Min() && data.Count() - 1 == data.Max() - data.Min();
------解决方案--------------------
引用:
Quote: 引用:

Quote: 引用:

Quote: 引用:

Quote: 引用:

如果是不重复,连续,就是
bool result = data.GroupBy(x => x).Count() - 1 == data.Max() - data.Min() && data.Count() - 1 == data.Max() - data.Min();


老曹的思路 比较新颖,不过有点遗漏噢.
int[] data = { 1,3,2,4,5 };
如果数据是这样的话 就不能满足了.

怎么不满足
groupby count = 5
count = 5
max = 5
min = 1
所以连续


人家说的是 数据是否连续   1,2,3,4,5 才是连续 
2,1,3,5,4  不是连续

人家没这么说吧。

不过就算是这样,那我再写个:
int[] data = { 2, 7, 1, 5, 6, 3, 4 };
bool result = Enumerable.Range(data[0], data.Count()).Zip(data, (x, y) => x == y).All(x => x);


------解决方案--------------------
引用:
楼主您好:最好理解的方法.
声明一个数组:string arr="1,2,3,4,5,6,7,8,9,10,11,12";
比如传入的数转化为string o="1,3,5";
只要判断这个字符串是否在上面的字符串里出现过就可以了呵呵.
判断的方法楼上各位都给出方法了.

纠正一下,是声明一个字符串嘿嘿.