Условие с нулевым значением в С# 6 У меня есть следующая строка кода: Project = x.Project == null ? null : new Model { ... } Есть ли способ в С# 6 сделать код короче? Я смотрел на несколько? примеры, но для этого случая я не могу найти более короткое решение... Ответ 1 As-ваш код как можно короче. Однако, если класс Project основан на методе public Model ToModel(...) { }, который вы могли бы сделать Project = x.Project?.ToModel(...); UPDATE: как только что упомянутый JonSkeet, вы также можете сделать .ToModel( метод расширения. public static class ExtensionMethods { public static Model ToModel(this Project p, ...) { return new Model { ... }; } } Синтаксис по-прежнему будет Project = x.Project?.ToModel(...); Ответ 2 Нет, это так коротко, как вы можете это сделать. Однако на основе этого кода вы должны иметь условие if выше, чтобы проверить значение x if(x != null) Project = x.Project == null ? null : new Model { ... } else Project = null; Вы можете изменить это на: Project = x?.Project == null ? null : new Model { ... } Ответ 3 Не короче, но альтернативное решение с использованием Linq: Model m = new Project[] { x.Project } .Where(p => p != null) .Select(p => new Model { ... }) .FirstOrDefault();
Ответ 1 As-ваш код как можно короче. Однако, если класс Project основан на методе public Model ToModel(...) { }, который вы могли бы сделать Project = x.Project?.ToModel(...); UPDATE: как только что упомянутый JonSkeet, вы также можете сделать .ToModel( метод расширения. public static class ExtensionMethods { public static Model ToModel(this Project p, ...) { return new Model { ... }; } } Синтаксис по-прежнему будет Project = x.Project?.ToModel(...);
Ответ 2 Нет, это так коротко, как вы можете это сделать. Однако на основе этого кода вы должны иметь условие if выше, чтобы проверить значение x if(x != null) Project = x.Project == null ? null : new Model { ... } else Project = null; Вы можете изменить это на: Project = x?.Project == null ? null : new Model { ... }
Ответ 3 Не короче, но альтернативное решение с использованием Linq: Model m = new Project[] { x.Project } .Where(p => p != null) .Select(p => new Model { ... }) .FirstOrDefault();