コード例 #1
0
        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);
                    }
                }
            }
        }