0

我有以下内容:

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

但我不确定如何将其转换var resourceidslong[]我的存储库方法接受long[]

4

2 回答 2

5

假设a.Technology.IT360ID.Value是 a longthenresourceids实际上是 a IEnumerable<long>。所以你只需要使用它来转换它ToArray()

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

请记住,这var不是“类型” - 它只是让编译器确定类型而不是显式声明它。

这可能是显式声明类型而不是 using 更好的情况var

long[] resourceids = racks.Select(a => a.Technology.IT360ID.Value).ToArray();
var resource = repository.GetResources(resourceids);
于 2013-08-09T15:44:39.540 回答
2

该方法Select将返回IEnumerable<long>。因此,要转换为long[],您可以调用ToArray()which 强制立即查询评估并返回包含查询结果的数组:

var resourceids = racks.Select(a => a.Technology.IT360ID.Value)
                       .ToArray();

var resource = repository.GetResources(resourceids);
于 2013-08-09T15:44:25.567 回答