public static void getCoppie( Tabelle tabelle, string siglaProvincia, ArrayList coppie, DataRow[] comuniDaImportare, DataRow[] geoComuni, out int[] partnerDiTabInGeo, out int[] partnerDiGeoInTab ) { partnerDiTabInGeo = new int[comuniDaImportare.Length]; partnerDiGeoInTab = new int[geoComuni.Length]; for (int i = 0; i < partnerDiTabInGeo.Length; i++) { partnerDiTabInGeo[i] = -1; } for (int i = 0; i < partnerDiGeoInTab.Length; i++) { partnerDiGeoInTab[i] = -1; } coppie.Sort(new ConfrontaCoppie()); for (int i = 0; i < coppie.Count; i++) { int matching = ((int[])coppie[i])[0]; int tab = ((int[])coppie[i])[1]; int geo = ((int[])coppie[i])[2]; if ((partnerDiGeoInTab[geo] == -1) && (partnerDiTabInGeo[tab] == -1)) { partnerDiTabInGeo[tab] = geo; partnerDiGeoInTab[geo] = tab; VistaGeo_Comune.geo_comuni_da_importareRow rComuneDaImportare = (VistaGeo_Comune.geo_comuni_da_importareRow)comuniDaImportare[tab]; VistaGeo_Comune.geo_comuneRow rGeoComune = (VistaGeo_Comune.geo_comuneRow)geoComuni[geo]; tabelle.inserisciNuovaRigaInTabellaTutteLeCoppie( comuniDaImportare[tab], geoComuni[geo], siglaProvincia, siglaProvincia, tabelle.isComuneDaImportareNuovo(rComuneDaImportare), tabelle.isGeoComuneNuovo(rGeoComune), matching ); } } for (int i = 0; i < partnerDiTabInGeo.Length; i++) { if (partnerDiTabInGeo[i] == -1) { tabelle.inserisciNuovaRigaInTabellaTuttiISingle1( comuniDaImportare[i], siglaProvincia ); } } for (int i = 0; i < partnerDiGeoInTab.Length; i++) { if (partnerDiGeoInTab[i] == -1) { tabelle.inserisciNuovaRigaInTabellaTuttiISingle2( geoComuni[i], siglaProvincia ); } } }