static void Main(string[] args) { List <ComPort> AllPorts = ComPort.GetAllPorts(); AllPorts.Sort(); PrintPorts(AllPorts, true); Console.CursorVisible = false; Console.SetCursorPosition(0, 10); while (true) { Console.WindowWidth = 80; Console.WindowHeight = 25; Console.SetBufferSize(Console.WindowWidth, Console.WindowHeight); List <ComPort> ports = ComPort.GetAllPorts(); // Removed ports Console.ForegroundColor = ConsoleColor.DarkRed; AllPorts.ForEach(x => { ComPort p = ports.Find(z => z.Port == x.Port); if (p != null) { p.Added = x.Added; } else { Console.WriteLine(DateTime.Now + "\tCOM" + x.Port + "\t" + x.Description); } }); Console.ForegroundColor = ConsoleColor.Green; // Added ports ports.ForEach(x => { ComPort p = AllPorts.Find(z => z.Port == x.Port); if (p == null) { Console.WriteLine(DateTime.Now + "\tCOM" + x.Port + "\t" + x.Description); } }); AllPorts = ports; ports.Sort(); PrintPorts(ports, false); System.Threading.Thread.Sleep(500); } }
public int CompareTo(object obj) { ComPort c2 = obj as ComPort; return(this.Added.AddMilliseconds(this.Port).CompareTo(c2.Added.AddMilliseconds(c2.Port))); }