private void deleteAllWithKnownPositionToolStripMenuItem_Click(object sender, EventArgs e) { List <string> edsmCheckNames = new List <string>(); List <string> removeNames = new List <string>(); string sysName = ""; for (int i = dataGridViewClosestSystems.RowCount - 1; i >= 0; i--) { DataGridViewRow r = dataGridViewClosestSystems.Rows[i]; sysName = r.Cells[1].Value.ToString(); if (r.Cells[0].Value.ToString() == "Local") { var sys = discoveryform.history.FindSystem(sysName, discoveryform.galacticMapping, false); if (sys == null) { edsmCheckNames.Add(sysName); } else if (sys.HasCoordinate) { removeNames.Add(sysName); } } } if (edsmCheckNames.Count() > 0) { EDSMClass edsm = new EDSMClass(); var nowKnown = edsm.GetSystems(edsmCheckNames); foreach (var s in nowKnown) { removeNames.Add(s.Name); } } for (int i = dataGridViewClosestSystems.RowCount - 1; i >= 0; i--) { DataGridViewRow r = dataGridViewClosestSystems.Rows[i]; sysName = r.Cells[1].Value.ToString(); if (removeNames.Contains(sysName)) { WantedSystemClass entry = wanted.Where(x => x.system == sysName).FirstOrDefault(); if (entry != null) { entry.Delete(); dataGridViewClosestSystems.Rows.Remove(r); wanted.Remove(entry); } } } }