DataTable に定義した DataColumn の型と、DataTable.Select の条件式から推論して処理される型が異なる場合、DataTable.Select の結果がおかしくなります。再現コードでは、DataTable の項目の型は "String" としていますが、Select の条件式では値に引用符がないために "数値" として処理されます。このような場合、エラーが発生したり、エラーが発生しなくても結果が期待通りでなかったりします。この件は、次のサイトで原因が解説されていました。Min (5) must be less than or equal to max (-1) in a Range objecthttp://social.msdn.microsoft.com/Forums/en-US/winforms/thread/aa45873f-5374-47c0-b5ed-a31c2e1fab32/#14cf0ef6-1759-4192-aca2-0a15b75d5589異なる型でのソート結果を使用すること自体、不適切な処理だと思います。型が異なる場合、バイナリーサーチではなく線形探索で処理するようになっていれば、検索スピードは遅くなったとしても予測不能な結果になることは避けられると思います。なお本件は、Bata1 の Visual Studio 2010、.NET Frame 4.0 の環境でも発生することを確認しました。