我有一个方法,它接收从数据库接收的数据,并且只接收具有特定日期的数据:
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...
}
答案 0 :(得分:2)
您可以创建一个Wrapper类,然后您将IEnumerable<MyClass>
或者你可以使用IEnumerable<dynamic>
,但这样 - 你不会有智慧。
答案 1 :(得分:2)
关于匿名类型的事情是它们没有被命名,例如匿名。
最好的做法是使用适当的属性定义自己的类,然后返回IEnumerable<SomeClass>
。
答案 2 :(得分:2)
定义一个封装加载数据的正确类可能是最好的方法。但是,如果您正在处理以后不需要的数据,并且您不能将它们传递到周围,您可以利用Tuple类。它看起来有点尴尬,但如果它只是你的代码并且它不是公共API的一部分那么它也是可用的。
您的返回类型将为IEnumerable<Tuple<string, string, string, int, int>>