Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/linq/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# LINQ:将内联查询重写为LINQ方法样式?_C#_Linq - Fatal编程技术网

C# 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") &&

如何使用LINQ方法而不是内联查询样式重新编写

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