我想确认是否有更优雅的方法使用Linq完成这个任务。为了简洁起见,我大大简化了代码。稍后我会解释原因,但它的流程如下:
(from t in doc.Descendants(p + "Task")
where t.Element(p + "Name") != null
select new {
FirstName = t.FirstName,
LastName = t.LastName,
FullName = FirstName + " " + LastName // Error!
}
是的,我知道FullName = t.FirstName + " " + t.LastName这样做很简单,但是让我们想象一下,如果FirstName和LastName是复杂的内联计算而不是简单的变量呢?那么FullName = [big ugly calc 1] + [big ugly calc 2]。所以在DRY的精神下,有更好的方法吗?我的第一个想法是编写一个函数来获取FirstName和LastName。但是有更好的方法吗?