[英]LINQ to XML and LINQ to Objects syntax
为什么是:
(CheckBox)lstControls.Where(x => x.ID == "some_id").SingleOrDefault();
不如:
(CheckBox)lstControls.SingleOrDefault(x => x.ID == "some_id");
对于格式不太完善的XML文档,您只知道要查找的元素的名称,这是可以用来查找元素的最佳语句:
var xmlElem = (from n in xDocument.Descendants() where (string)n.Attribute("name") == "some_node_name" select n).SingleOrDefault();
谢谢....
如果我没记错的话,就O效率而言,它是相同的。 这只是一个额外的方法调用。
关于第二个问题,
var xmlElem = (from n in xDocument.Descendants() where (string)n.Attribute("name") == "some_node_name" select n).SingleOrDefault();
可以更简单地表示为
var xmlElem = xDocument.Descendants().SingleOrDefault(n => (string)n.Attribute("name") == "some_node_name");
(CheckBox)lstControls.Where(x => x.ID == "some_id").SingleOrDefault();
这必须测试枚举中的每个项目。
(CheckBox)lstControls.SingleOrDefault(x => x.ID == "some_id");
这样可以停止测试项目,并在发现问题后立即返回。
如果枚举非常大,并且靠近前部的项目满足条件,则前者可能会快得多。 在满足条件的项目数随着枚举的大小而增加的情况下,加速可能是渐近的。 例如,如果平均每k个项目中有一个满足条件,则第二个代码段的平均运行时间是恒定的。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.