如何在给定“IEnumerable<T>”的情况下调用需要“param T[]”参数的函数?

问题描述 投票:0回答:1

如何在给定

param T[]
的情况下调用需要
IEnumerable<T>
参数的函数?

考虑以下函数签名:

    public async Task AddNotificationRecordsAsync(IEnumerable<NotificationRecord> notificationRecords, CancellationToken cancellationToken = default)

在这个函数中,我想调用以下EF Core函数:

void DbSet<NotificationRecord>.AddRange(params NotificationRecord[] entities)

但是,我不知道如何将

IEnumerable
转换为单独的
params

在Python中,我会使用解包运算符“*”,如下所示:

f(*mylist)

c# .net entity-framework
1个回答
0
投票

param
关键字允许您将数组或类似的参数作为单独的参数传递。但它并不禁止您传递常规数组。

因此,您可以使用

Enumerable.ToArray
方法将
IEnumerable<T>
转换为
T[]
并将其传递给您的
DbSet.AddRange
方法。

© www.soinside.com 2019 - 2024. All rights reserved.