【发布时间】:2020-01-31 02:22:15
【问题描述】:
我想彻底删除 foreach。
这是我的代码
foreach (var user in elite.Users)
{
if (user.UserName==txtuser.Text && user.UserPWD==txtpass.Text)
{
MainForm mainForm = new MainForm();
mainForm.ShowDialog();
Hide();
Close();
}
}
【问题讨论】:
-
当您创建和显示对话框时,我认为 foreach 的任何潜在开销都不是问题。你能帮助我们理解你从哪里得到的 foreach 非常慢的想法吗?你有这方面的任何文档,或者有任何演示它的代码吗?我问是因为我经常使用 foreach 并且它对我来说并不慢。此外,如果 LINQ 正在做任何表现得像循环的事情,那意味着那里有一个实际的循环,在你正在调用的某些方法中。
-
为什么你认为 LINQ 表达式会比
foreach更快?你认为它们是如何实施的?此外,LINQ 用于查询(这是Q的意思),而不是像这样的副作用。 -
不要为每个用户使用一个新的但相同的表单,而是考虑为每个用户重用一个表单实例
-
我在从数据库中检索数据后使用 linq 表达式进行了一些计算,它比 for 循环快了大约 10 倍。
-
foris faster thanforeachis faster thanLINQfor LINQ to Objects。对于 LINQ to EF / EF Core / SQL,LINQ 可能比foreach更快,具体取决于查询的性质以及数据库服务器的类型和速度,因为查询要么在数据库端(EF/EF Core 3/SQL)或在数据库服务器和客户端之间拆分(EF Core foreach 慢。
标签: c# linq loops optimization