private void myRefreshStationList() { IPEndPoint NumEndPoint = default(IPEndPoint); // set all stations not discovered for (int i = 0; i <= discoveredStations.GetTable.Count - 1; i++) { discoveredStations.set_Discovered(i, false); } // add or set discovered stations CStationConnectionData[] UDPStations = searchStationsUPD.GetDiscoveredStations(); int idx = 0; foreach (CStationConnectionData stnData in UDPStations) { NumEndPoint = stnData.IPEndPointValue; idx = discoveredStations.ExistsStation(NumEndPoint); if (idx >= 0) { discoveredStations.set_Discovered(idx, true); } else { discoveredStations.AddStation(NumEndPoint, stnData); } } // delete stations not in discovered table for (int i = discoveredStations.GetTable.Count - 1; i >= 0; i--) { if (discoveredStations.get_Discovered(i) == false) { discoveredStations.RemoveStation(i); } } iRefreshUDPCount = 0; }