日期:2014-05-18 浏览次数:21046 次
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