C# LINQ:将内联查询重写为LINQ方法样式?
如何使用LINQ方法而不是内联查询样式重新编写C# LINQ:将内联查询重写为LINQ方法样式?,c#,linq,C#,Linq,如何使用LINQ方法而不是内联查询样式重新编写 var cp = from DataRow r in rptDataPkg.Datasets.Item(0).Result.Rows where (r.Field<string>("UnitItem") == "PC") && (r.Field<string>("UnitItem") == "Hs") &&
var cp = from DataRow r in rptDataPkg.Datasets.Item(0).Result.Rows
where (r.Field<string>("UnitItem") == "PC") &&
(r.Field<string>("UnitItem") == "Hs") &&
(r.Field<string>("UnitItem") == "U")
select new CurrProjected
{
doAddUp = (r.Field<Decimal>("Fld1") + r.Field<Decimal>("Fld2"))
== r.Field<Decimal>("Fld3")
};
var cp=来自rptDataPkg.Datasets.Item(0.Result.Rows)中的数据行r
其中(r.字段(“UnitItem”)=“PC”)&&
(r.字段(“UnitItem”)=“Hs”)&&
(右字段(“UnitItem”)=“U”)
选择新项目
{
doAddUp=(r字段(“Fld1”)+r字段(“Fld2”))
==r.字段(“Fld3”)
};
尝试以下操作
var cp = rptDataPkg.Datasets.Item(0).Result.Rows
.Cast<DataRow>()
.Where(r => (r.Field<string>("UnitItem") == "PC") &&
(r.Field<string>("UnitItem") == "Hs") &&
(r.Field<string>("UnitItem") == "U"))
.Select(r => new CurrProjected
{
doAddUp = (r.Field<Decimal>("Fld1") + r.Field<Decimal>("Fld2"))
== r.Field<Decimal>("Fld3")
});
var cp=rptDataPkg.Datasets.Item(0).Result.Rows
.Cast()
其中(r=>(r.字段(“UnitItem”)==“PC”)&&
(r.字段(“UnitItem”)=“Hs”)&&
(r.字段(“UnitItem”)=“U”))
.选择(r=>new Current)
{
doAddUp=(r字段(“Fld1”)+r字段(“Fld2”))
==r.字段(“Fld3”)
});
尝试以下操作
var cp = rptDataPkg.Datasets.Item(0).Result.Rows
.Cast<DataRow>()
.Where(r => (r.Field<string>("UnitItem") == "PC") &&
(r.Field<string>("UnitItem") == "Hs") &&
(r.Field<string>("UnitItem") == "U"))
.Select(r => new CurrProjected
{
doAddUp = (r.Field<Decimal>("Fld1") + r.Field<Decimal>("Fld2"))
== r.Field<Decimal>("Fld3")
});
var cp=rptDataPkg.Datasets.Item(0).Result.Rows
.Cast()
其中(r=>(r.字段(“UnitItem”)==“PC”)&&
(r.字段(“UnitItem”)=“Hs”)&&
(r.字段(“UnitItem”)=“U”))
.选择(r=>new Current)
{
doAddUp=(r字段(“Fld1”)+r字段(“Fld2”))
==r.字段(“Fld3”)
});
我个人更喜欢这种语法而不是其他解决方案。
var cp=rptDataPkg.Datasets.Item(0).Result.Rows
其中(r=>r.Field(“UnitItem”)==“PC”)
其中(r=>r.字段(“UnitItem”)==“Hs”)
其中(r=>r.字段(“UnitItem”)==“U”)
.选择(r=>new Current)
{
doAddUp=(r字段(“Fld1”)+r字段(“Fld2”))
==r.字段(“Fld3”)
});代码>我个人更喜欢这种语法而不是其他解决方案。
var cp=rptDataPkg.Datasets.Item(0).Result.Rows
其中(r=>r.Field(“UnitItem”)==“PC”)
其中(r=>r.字段(“UnitItem”)==“Hs”)
其中(r=>r.字段(“UnitItem”)==“U”)
.选择(r=>new Current)
{
doAddUp=(r字段(“Fld1”)+r字段(“Fld2”))
==r.字段(“Fld3”)
});代码>感谢您的快速回复!但是必须将此添加到Rows对象:.Cast(),这一切都很好:)@user259286忘记了这是一个非类型的集合,在我的回答中添加了此Cast谢谢您的快速回复!但是必须将此添加到Rows对象:.Cast(),这一切都很好:)@user259286忘记了这是一个非类型化的集合,在我的回答中添加了Cast