2011-12-19 9 views
4

私は、各行から要素を返すDataRow []に対してLinqクエリを取得しました。ビット以下のようになります。Linq配列[]をint []に変換するには?

var query = from row in rows select row["Id"]; 

私は[] int型にこれを変換したいのですが、次のコードはエラーを生成します。

int[] myIntArray = query.ToArray(); 

エラーは次のとおりです。

Cannot implicitly convert type object[] to int[] 

この仕事をするための巧妙なトリックはありますか?

答えて

8

インデクサ(row[...])は、ではなく、intを返します。
したがって、暗黙的に型指定されたクエリは、objectのセットです。

あなたはこのように、明示的にint Sを選択する必要があります。

int[] numbers = rows.Select(r => r.Field<int>("Id")).ToArray(); 

(または単にselect (int)row["Id"]

+0

感謝。私は変換がLinqクエリ自体の内部で許容されていることを認識していませんでした。非常に役立ちます! –

+0

ようこそ。 LINQクエリは任意の式を持つことができます。 – SLaks

関連する問題