C# 如何在C中使用labda表达式linq内部连接数据表?
我使用查询语法连接了数据表,它工作得很好。有人能帮我把它转换成lamba语句吗C# 如何在C中使用labda表达式linq内部连接数据表?,c#,linq,linq-to-dataset,C#,Linq,Linq To Dataset,我使用查询语法连接了数据表,它工作得很好。有人能帮我把它转换成lamba语句吗 var oVarLoanDetails = (from data in ActiveReferralDetails.AsEnumerable() join reftypedata in ActionType.AsEnumerable() on data.Field<int>("atid") equals reftypedata.Field<int>("atid") j
var oVarLoanDetails = (from data in ActiveReferralDetails.AsEnumerable()
join reftypedata in ActionType.AsEnumerable()
on data.Field<int>("atid") equals reftypedata.Field<int>("atid")
join refsubtypedata in ActionSubType.AsEnumerable()
on data.Field<int>("ASTID") equals refsubtypedata.Field<int>("ASTID")
where reftypedata.Field<int>("atid") == refsubtypedata.Field<int>("atid")
select new LoanDataInfo
{
LoanNumber = data.Field<string>("Loanno").ToLower(),
ATID = reftypedata.Field<int>("atid"),
RefType = reftypedata.Field<string>("ATSHORTDESC"),
RefSubType = refsubtypedata.Field<string>("SUBTYPESHORTDESC")
});
//Class LoanDataInfo
public class LoanDataInfo
{
public string LoanNumber { get; set; }
public int ATID { get; set; }
public string RefType { get; set; }
public string RefSubType { get; set; }
}
编辑:
参考
查询的lambda版本可能是这样的
请注意,对于某些属性,我只是假设它来自ActiveReferralDetails
var oVarLoanDetails = ActiveReferralDetails.AsEnumerable()
.Join(ActionType.AsEnumerable(),
ard => arc.Field<int>("atid"),
at => at.Field<int>("atid"),
(ard, at) => new { ARD = ard, AT = at })
.Join(ActionSubType.AsEnumerable(),
r => new { astid = r.ARD.Field<int>("ASTID"),
atid = r.ARD.Field<int>("atid") },
ast => new { astid = ast.Field<int>("ASTID"),
atid = ast.Field<int>("atid") },
(r, ast) => new { ARD = r.ARD, AT = r.AT, AST = ast})
.Select(r => new LoanDataInfo() {
LoanNumber = r.ARD.Field<string>("Loanno").ToLower(),
ATID = r.ARD.Field<int>("atid"),
RefType = r.ARD.Field<string>("ATSHORTDESC"),
RefSubType = r.ARD.Field<string>("SUBTYPESHORTDESC")
});
Lambda连接是丑陋的。我不建议您使用它。您为什么要这样做?在连接中使用方法语法是如此难看,我从来都不记得我必须传递什么,难怪你需要问。你总是可以混合使用这两种语法来避免它。是的,即使我也同意lamda连接是丑陋的。我只是想尝试在数据表中编写lamda联接……没有任何好处检查此标题可能对您有所帮助我希望您将ActiveReferralDetails视为一个类,但它是一个数据表。@DineshRamaian只需相应地应用更改即可。