如何把system.linq.iqueryable类型转换为数组类型?

想从数据库的DialyTable中提取某人近七次的activitytime的数据,写了个函数,但是没办法使用这些数据,该怎么办呢

img

LINQ提供了ToArray()方法,将IQueryable转换成数组,示例如下:

var d = DateTime.Now;
var list = new List<DailyTable>
{
    new(1, "P1", d.AddDays(-7)),
    new(2, "P1", d.AddDays(-6)),
    new(3, "P2", d.AddDays(-5)),
    new(4, "P1", d.AddDays(-4)),
    new(5, "P1", d.AddDays(-3)),
    new(6, "P3", d.AddDays(-2)),
    new(7, "P1", d.AddDays(-1)),
    new(8, "P1", d)
};

var result = (
        from c in list
        where c.PatientName == "P1"
        select c)
    .OrderByDescending(x => x.ActivityTime)
    .Select(c => c.Id)
    .Take(5)
    .ToArray();

foreach (var item in result)
{
    Console.WriteLine($"patient id: {item}");
}

public record DailyTable(int Id, string PatientName, DateTime ActivityTime);

运行结果:

patient id: 8
patient id: 7
patient id: 5
patient id: 4
patient id: 2

.ToList()

你好,
用ToArray().

string[] dialyactivitytime =(from ......).ToArray();