0

私は次のものを持っています:

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

しかし、リポジトリメソッドが受け入れるように変換var resourceidsする方法がわかりませんlong[]long[]

4

2 に答える 2

5

が であると仮定するa.Technology.IT360ID.Valueと、実際にはlongです。したがって、次を使用して変換するだけです。resourceidsIEnumerable<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);
于 2013-08-09T15:44:39.540 に答える
2

メソッドSelectは を返しIEnumerable<long>ます。したがって、に変換するには、すぐにクエリの評価を強制し、クエリ結果を含む配列を返す をlong[]呼び出すことができます。ToArray()

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

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