c# – Linq Combine Fields
发布时间:2020-12-15 23:53:41 所属栏目:百科 来源:网络整理
导读:只是想查看是否有更优雅的方法来使用 Linq完成此任务.为简洁起见,我大大简化了代码.我会在一分钟内介绍我的理由,但它是这样的: (from t in doc.Descendants(p + "Task")where t.Element(p + "Name") != nullselect new { FirstName = t.FirstName,LastName
只是想查看是否有更优雅的方法来使用
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 = [大难看的计算1] [大难看的计算2].因此,根据DRY的精神,有没有更好的方法可以做到这一点?我的第一个想法是编写一个给我FirstName和LastName的函数.但还有更好的东西吗? 解决方法
好吧,你可以这样做:
from t in doc.Descendants(p + "Task") where t.Element(p + "Name") != null let FirstName = t.FirstName let LastName = t.LastName select new { FirstName,LastName,Fullname = FirstName + LastName } 就预测的预测而言,效率会稍微低一些,但它会起作用. 效率稍高的是: from t in doc.Descendants(p + "Task") where t.Element(p + "Name") != null select new { t.FirstName,t.LastName } into x select new { x.FirstName,x.LastName,FullName = x.FirstName + x.LastName } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |