private void LinkSelectedCellToNeighbor(Cell from, List<string> retVal) { var messageToPrint = string.Empty; var orderedNeighbors = from.NeighborCells.Where(c => c.NbLinkToPut > 0).OrderByDescending(c => c.NbLinkToPut).ToList(); foreach (var neighbor in orderedNeighbors) { if (from.NbLinkToCell(neighbor) < 2) { messageToPrint = LinkCells(from, neighbor); break; } } if (!string.IsNullOrEmpty(messageToPrint)) { retVal.Add(messageToPrint); Console.WriteLine(messageToPrint); } //else -> put a bool to say that the cell is not available }