如何将包含Long的var转换为Long []

时间:2013-08-09 15:42:49

标签: c# linq

我有以下内容:

var resourceids = racks.Select(a => a.Technology.IT360ID.Value);
var resource = repository.GetResources(resourceids);

但我不知道如何将var resourceids转换为long[],因为我的存储库方法接受long[]

2 个答案:

答案 0 :(得分:5)

假设a.Technology.IT360ID.Valuelong,则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);