C# 如何分离目标函数的结果?
我在函数中有一个LINQ查询,如下代码:C# 如何分离目标函数的结果?,c#,linq,anonymous-types,C#,Linq,Anonymous Types,我在函数中有一个LINQ查询,如下代码: public object RetrieveFday(DateTime _dt) { var fp = from f in RSC.tbl_FoodPlan join food in RSC.tbl_Food on f.FoodID equals food.FoodID where f.Day == _dt
public object RetrieveFday(DateTime _dt)
{
var fp = from f in RSC.tbl_FoodPlan join food in RSC.tbl_Food
on f.FoodID equals food.FoodID
where f.Day == _dt
select new
{
FoodName= food.Name,
Fholiday= f.HoliDay
};
return fp;
}
现在我在其他地方调用这个函数,我想得到结果并将它们分开,以不同的标签显示每一个,当调用该函数并得到结果时,我无法读取它们的属性:
var test = RetrieveFday(dt);
如何将结果中的属性读入测试?不打算用作返回类型,因此只需创建一个新类来保存投影数据:
public class FoodNameAndHoliday
{
public string FoodName { get; set; }
public string Fholiday { get; set; }
}
并修改RetrieveFday
函数,以便在选择中使用您的类:
public IEnumerable<FoodNameAndHoliday> RetrieveFday(DateTime _dt)
{
var fp = from f in RSC.tbl_FoodPlan join food in RSC.tbl_Food
on f.FoodID equals food.FoodID
where f.Day == _dt
select new FoodNameAndHoliday
{
FoodName= food.Name,
Fholiday= f.HoliDay
};
return fp;
}
为什么在LINQ查询结果可查询的情况下返回object?除了@nemesv answer之外-如果您仍然必须使用匿名类型并且无法创建类,请尝试返回IEnumerable
,而不是object
var test = RetrieveFday(dt);
foreach(var item in test)
{
DoSomethingWith(item.FoodName);
DoSomethingWith(item.Fholiday);
}