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# 如何分离目标函数的结果?_C#_Linq_Anonymous Types - Fatal编程技术网

C# 如何分离目标函数的结果?

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

我在函数中有一个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
                              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);
}