private static List <AddressSequence> DetectAddressSequenceRuns(IList <int> addressLocs) { List <AddressSequence> sequences = new List <AddressSequence>(); for (int i = 0; i < addressLocs.Count; i++) { // There can't be any more sequences if we're on the last iteration if (i + 1 == addressLocs.Count) { break; } if (addressLocs[i + 1] - addressLocs[i] == ADDRESS_SIZE) { // We have found a sequence of at least 2 addresses AddressSequence seq = new AddressSequence { addrLocationListStartIdx = i, numAddressInSeq = 2 }; i++; while (i + 1 < addressLocs.Count) { if (addressLocs[i + 1] - addressLocs[i] == ADDRESS_SIZE) { // We have found another sequence to add. seq.numAddressInSeq++; i++; } else { // The consecutive sequence ends. break; } } // Check if there are more than 2 addresses in a sequence. if (seq.numAddressInSeq > 2) { // Add the sequence to the list of sequences. sequences.Add(seq); } } } return(sequences); }
private static List <AddressSequence> DetectAddressSequenceRuns(IList <int> addressLocations) { var sequences = new List <AddressSequence>(); for (int addressIndex = 0; addressIndex < addressLocations.Count; addressIndex++) { // There can't be any more sequences if we're on the last iteration if (addressIndex + 1 == addressLocations.Count) { break; } if (addressLocations[addressIndex + 1] - addressLocations[addressIndex] == ADDRESS_SIZE) { // We have found a sequence of at least 2 addresses var seq = new AddressSequence { ListStartIndex = addressIndex++, Length = 2 }; while (addressIndex + 1 < addressLocations.Count) { if (addressLocations[addressIndex + 1] - addressLocations[addressIndex] == ADDRESS_SIZE) { // We have found another sequence to add. seq.Length++; addressIndex++; } else { // The consecutive sequence ends. --addressIndex; break; } } // Check if there are more than 2 addresses in a sequence. if (seq.Length > 2) { // Add the sequence to the list of sequences. sequences.Add(seq); } } } return(sequences); }
private static List<AddressSequence> DetectAddressSequenceRuns(IList<int> addressLocs) { List<AddressSequence> sequences = new List<AddressSequence>(); for (int i = 0; i < addressLocs.Count; i++) { // There can't be any more sequences if we're on the last iteration if (i + 1 == addressLocs.Count) { break; } if (addressLocs[i + 1] - addressLocs[i] == ADDRESS_SIZE) { // We have found a sequence of at least 2 addresses AddressSequence seq = new AddressSequence { addrLocationListStartIdx = i, numAddressInSeq = 2 }; i++; while (i + 1 < addressLocs.Count) { if (addressLocs[i + 1] - addressLocs[i] == ADDRESS_SIZE) { // We have found another sequence to add. seq.numAddressInSeq++; i++; } else { // The consecutive sequence ends. break; } } // Check if there are more than 2 addresses in a sequence. if (seq.numAddressInSeq > 2) { // Add the sequence to the list of sequences. sequences.Add(seq); } } } return sequences; }