1

我有一个方法,它获取从数据库接收到的数据,并且只获取具有特定日期的数据:

private static **return type** FilterDataByDay(DataTable dt, string nameOfTheDay)
    {
         var data = dt.AsEnumerable().Select(x => new
            {
                code = x.Field<string>("Code"),
                day= x.Field<string>("Day"),
                name= x.Field<string>("Name"),
                startTime= x.Field<int>("StartTime"),
                endTime= x.Field<int>("EndTime")

            })
                                    .Where(x => x.day.Equals(nameOfTheDay))
                                    .ToList();

        return data ;
    }

问题是我不知道如何从这个方法返回数据,其他方法可以把它打印出来,每行的每个元素,它应该让我打印如下内容:

    foreach(var variable in "the retuned data from method")
    {
     Console.WriteLine(variable.code +" "+ variable.day + ..etc...
    }
4

3 回答 3

2

定义一个适当的类来封装加载的数据可能是最好的方法。但是,如果您正在处理以后不需要的数据并且您不会将它们传递太多,您可以利用Tuple类。它看起来有点尴尬,但如果它只是你的代码并且它不是公共 API 的一部分,那么它也是可用的。

您的返回类型将是IEnumerable<Tuple<string, string, string, int, int>>

于 2013-11-03T13:28:43.103 回答
2

您可以创建一个 Wrapper 类,然后您将拥有IEnumerable<MyClass>

或者你可以使用IEnumerable<dynamic>,但是这样 - 你不会有智能。

于 2013-11-03T13:22:16.440 回答
2

关于匿名类型的事情是它们没有被命名,例如匿名。

最好的做法是使用适当的属性定义您自己的类,然后您可以返回IEnumerable<SomeClass>

于 2013-11-03T13:23:06.663 回答