Все против любого метода расширения: который более эффективен
Сегодня я наткнулся на метод расширения LINQ с именем All
для типа данных List в C#. У меня есть несколько заявлений для выполнения на основе условия. У меня есть список, содержащий несколько строк. Я выполню операторы, убедившись, что в моем списке нет пустых или пустых элементов. Вот как я могу сделать это двумя разными способами, используя Any
или же All
Методы расширения LINQ:
static void Main(string[] args)
{
List<string> nameList = new List<string> { "foo", "bar","" };
//way # 1
if (!nameList.Any(x => string.IsNullOrEmpty(x)))
{
//do something here
}
//way # 2
if (nameList.All(x => !string.IsNullOrEmpty(x)))
{
//do something here
}
}
У меня есть два вопроса здесь:
- Что является более эффективным с точки зрения реализации метода расширения.
- Что выглядит лучше / уместнее с точки зрения чистого кода? Как говорит дядя Боб: чистый код читается как хорошо написанная проза.