日期:2014-05-18 浏览次数:21405 次
for (int r = Grid.Rows.Fixed; r < Grid.Rows.Count; r++)
{
if (Grid[r, 1] != null)
{
initialvalue = Convert.ToInt32(Grid[r, 5]);
if (initialvalue == 0)
{
one_consecutive += 1;
}
}
else
{
if (one_consecutive > max_one_consecutive)
{
max_one_consecutive = one_consecutive;
one_consecutive = 0;
}
}
}
public class test
{
int? maxCount=null;
int CcurCount = 0;
bool _countState=true;
bool CountState {
get
{
return _countState;
}
set {
_countState = value;
if (!_countState)
{
if (CcurCount > (maxCount ?? 0))
maxCount = CcurCount;
CcurCount = 0;
}
}
}
public int getMaxCount<T>(IEnumerable<T> list, Func<T, bool> func)
{
if (list==null)
{
return 0;
}
maxCount = null;
foreach (T item in list)
{
if (func(item))
{
CcurCount += 1;
}
else
{
CountState = false;
}
}
CountState = false;
return maxCount ?? 0;
}
}
------解决方案--------------------
试试这个
int one = 0;
int zero = 0;
bool flag = true;
int tc = 0;
Action action = () => { if (flag) { if (tc > one) { one = tc; } } else { if (tc > zero) { zero = tc; } } };
for (int i = 0; i < Grid.Rows.Count; i++)
{
if ((Grid[0, i] != null) != flag)
{
action();
tc = 0;
flag = !flag;
}
++tc;
}
action();
------解决方案--------------------
int blankconsecutive = 0;
int maxblankconsecutive = 0;
int zeroconsecutive = 0;
int maxzeroconsecutive = 0;
for (int r = 1; r <= 25; r++)
{
flex[r, 0] = r;
flex[26, 0] = "///////////////////////";
flex[26, 1] = "///";
if (flex[r, 1] == null)
{
blankconsecutive += 1;
}
else
{
if (Convert.ToInt32(flex[r, 1]) == 0)
{
if (blankconsecutive > maxblankconsecutive)
{
maxblankconsecutive = blankconsecutive;
}
}
blankconsecutive = 0;
}
flex.SetData(29, 1, maxblankconsecutive);
if (flex[r,1] != null)
{
zeroconsecutive += 1;
}
else
{
i