我有以下内容:
var resourceids = racks.Select(a => a.Technology.IT360ID.Value);
var resource = repository.GetResources(resourceids);
但我不知道如何将var resourceids
转换为long[]
,因为我的存储库方法接受long[]
答案 0 :(得分:5)
假设a.Technology.IT360ID.Value
是long
,则resourceids
实际上是IEnumerable<long>
。所以你只需要使用ToArray()
转换它:
var resourceids = racks.Select(a => a.Technology.IT360ID.Value).ToArray();
var resource = repository.GetResources(resourceids);
请记住var
不是“类型” - 它只是让编译器确定类型而不是明确声明它。
这可能是明确声明类型与使用var
相比更好的情况:
long[] resourceids = racks.Select(a => a.Technology.IT360ID.Value).ToArray();
var resource = repository.GetResources(resourceids);
答案 1 :(得分:2)
方法Select
将返回IEnumerable<long>
。因此,要转换为long[]
,您可以调用ToArray()
来强制立即进行查询评估,并返回包含查询结果的数组:
var resourceids = racks.Select(a => a.Technology.IT360ID.Value)
.ToArray();
var resource = repository.GetResources(resourceids);