以下哪种语法的性能更好
本文关键字:性能 更好 语法 | 更新日期: 2023-09-27 18:20:37
以下哪种语法在数据之间搜索时具有更好的性能和速度?
第一种选择:
this.Message = pageContentsli
.Where(m => m.PName == "Message")
.First()
.ContentValue;
第二种选择:
foreach (PageContentsModel pc in pageContentsli)
{
if (pc.PName == "Message"){
this.Message = pc.ContentValue;
break;
}
}
在继续比较之前,您应该将条件移动到First
中,如下所示:
this.Message = pageContentsli.First(m => m.PName == "Message").ContentValue;
就表现而言,你应该看不出有什么不同。然而,在可读性方面,修改后的LINQ版本赢得了胜利。
首先让我解释一下这两种语法的实际作用。
在第一个语法(where
)中,它逐个处理元素,如果捕获到m.PName="Message"
,它将请求的值返回给this.Message
,然后处理停止。
在第二个语法(foreach
)中,它逐个处理元素,当它捕获m.PName="Message"
时,它将值分配给this.Message
,并再次开始处理元素的其余部分。
因此,即使找到了值,第二个语法也不会停止,因此它比第一个