public void DumpToText(string filePath) { var buttonMappings = UserCommands. Select((value, index) => new { Index = index, Button = value }). Where(button => button.Button < 255). OrderBy(button => button.Button); using (StreamWriter writer = new StreamWriter(File.OpenWrite(filePath))) { writer.WriteLine("{0,-40}{1,-40}", "Command", "Button"); writer.WriteLine(new string('=', 40 * 2)); foreach (var buttonMapping in buttonMappings) { writer.WriteLine("{0,-40}{1,-40}", ((UserCommand)buttonMapping.Index).GetLocalizedDescription(), buttonMapping.Button); } } }