Linq не обязательно быстрее: это миф .
Linq использует много вызовов методов, которые занимают огромные циклы ЦП ...
Конечно, Linq оптимизировани может делать прохождения в несколько вызовов, которые иногда могут быть быстрее, чем код, даже написанный инсайдером.
Но в зависимости от типа объектов, с которыми вы работаете, Linq требует много ресурсов и иногда будетмедленнее.
Вопрос, задаваемый Linq, прежде всего касается качества кода, его краткости, надежности и удобства обслуживания, и здесь это чудо .
Для вашего кода вам не нужен Linq, и он не будет работать быстрее.
Вы можете добавить разрыв в конце области if
, чтобы он прекратил синтаксический анализ после обнаружения пользователя:
foreach (var user in elite.Users)
if ( user.UserName == txtuser.Text && user.UserPWD == txtpass.Text )
{
MainForm mainForm = new MainForm();
mainForm.ShowDialog();
Hide();
Close();
break;
}
Используя Linq, вы можете написать:
if ( elite.Users.Any(user => user.UserName == txtuser.Text
&& user.UserPWD == txtpass.Text) )
{
MainForm mainForm = new MainForm();
mainForm.ShowDialog();
Hide();
Close();
}
Как вы видите, у вас нет никакой выгоды с самим кодом, и он не будет выполняться быстрее или медленнее при такой простой вещи.
Потому что, что делает Linq? Это как-то делает foreach ...
https://referencesource.microsoft.com/#System.Core/System/Linq/Enumerable.cs,e73922753675387a,references
https://referencesource.microsoft.com/#System.Core/System/Linq/Enumerable.cs,8087366974af11d2