internal CandidateFinder(VfState vfs) { _vfs = vfs; if ( !vfs.fnCmp(vfs.LstOut1.Count, vfs.LstOut2.Count) || !vfs.fnCmp(vfs.LstIn1.Count, vfs.LstIn2.Count) || !vfs.fnCmp(vfs.LstDisconnected1.Count, vfs.LstDisconnected2.Count)) { _fFailImmediately = true; return; } if (vfs.LstOut2.Count > 0 && vfs.LstOut1.Count > 0) { _arinodGraph1 = new int[vfs.LstOut1.Count]; vfs.LstOut1.CopyTo(_arinodGraph1); SetInitialMatch(vfs.LstOut1[0], vfs.LstOut2[0]); } else if (vfs.LstIn2.Count > 0 && vfs.LstIn1.Count > 0) { _arinodGraph1 = new int[vfs.LstIn1.Count]; vfs.LstIn1.CopyTo(_arinodGraph1); SetInitialMatch(vfs.LstIn1[0], vfs.LstIn2[0]); } else if (vfs.LstDisconnected1.Count >= 0) { _arinodGraph1 = new int[vfs.LstDisconnected1.Count]; vfs.LstDisconnected1.CopyTo(_arinodGraph1); SetInitialMatch(vfs.LstDisconnected1[0], vfs.LstDisconnected2[0]); } }