なぜ私は、foreachの(DataTable.Rows中のvar項目)を行うことはできませんか?
質問
は、私は次のことを行うことができない理由はあります
foreach (var Item in DataTable.Rows) {
むしろやってたより
foreach (DataRow Item in DataTable.Rows) {
それは他のデータ型であるように私は、これが可能だと思っているだろう。たとえばます:
foreach (var Employee in Staff) { // string[] Staff etc...
私が最初にforeachループをしようとすると、、私が手にエラーの CS0021:「オブジェクト」タイプの表現に[]でインデックスを適用することはできませんの
なぜ.RowsがでDataRow?
のコレクションを返すことをコンパイラ図アウトすることはできません解決
コンパイラのみ
Rows
の型としてIEnumerable
を選択できるように、 DataRowCollection
を効果、object
(var
)を返します。使用Rows.Cast<DataRow>
あなたはvar
を使用する場合。
Cast
は、あなたがシステムを含める必要がありますので、列挙の上で定義されています.Linqます。
他のヒント
ブライアンは、右この理由については絶対にあるが、それを回避する簡単な方法があります:使用<のhref = "http://msdn.microsoft.com/en-us/library/system.data.datatableextensionsが。 asenumerable.aspx」REL = "noreferrer"> DataTableExtensions.AsEnumerable()の
foreach (var row in DataTable.AsEnumerable())
{
...
}
所属していません StackOverflow