4

.net2winformsアプリで次のコードを実行しようとしています。

DataTable dt = this.GetData(null, null, true, sql);

DateTime minDate = (from f in dt.AsEnumerable()
               select f.Field<DateTime>("Timestamp")).Min();

「usingsystem.linq」と「.AsEnumerable()」でエラーが発生します。AsEnumerable()を使用するようにこれを解決する方法はありますか?それとも、この方法をやめるべきですか?

ありがとう!

4

2 に答える 2

5

.NET2にはLINQがありません。LINQBridgeを使用できます。これには、のAsEnumerable()拡張メソッドが含まれる場合と含まれない場合がありますDataTable。含まれている場合は、Cast<DataRow>()代わりに、オプションで明示的に型指定された範囲変数を介して使用できます。

DateTime minDate = (from DataRow f in dt.AsEnumerable()
                    select f.Field<DateTime>("Timestamp")).Min();

次に、の拡張メソッド必要になります。LINQBridgeの一部でない場合は、おそらく自分で書くことができます。Field<T>DataRow

明確にするために、ラムダ式や拡張メソッドなどのC#3機能が必要なため、Visual Studio 2005も使用している場合、これはどれも快適に機能しません。

.NET 3.5にアップグレードできる可能性はありますか?それは人生をずっと楽にするでしょう...

于 2011-03-01T09:58:35.583 に答える
0

LINQは.NET3.5で導入されたので、ここでは運が悪いと思います:(

于 2011-03-01T09:58:27.730 に答える