16
文字列をnull許容型(int、doubleなど)に変換します
一部のデータ変換を実行しようとしています。残念ながら、データの多くは文字列であり、intやdoubleなどでなければなりません。 だから私が持っているものは次のようなものです: double? amount = Convert.ToDouble(strAmount); このアプローチの問題は、strAmountが空の場合、空の場合はnullにしたいので、データベースに追加すると、列がnullになります。だから私はこれを書いてしまいました: double? amount = null; if(strAmount.Trim().Length>0) { amount = Convert.ToDouble(strAmount); } これで問題なく動作しますが、コードが1行ではなく5行になりました。これにより、特に変換する列が大量にある場合は、読み取りが少し難しくなります。 文字列クラスとジェネリックの拡張を使用して型を渡すと思いましたが、これはdouble、int、またはlongの可能性があるためです。だから私はこれを試しました: public static class GenericExtension { public static Nullable<T> ConvertToNullable<T>(this string s, T type) where T: struct { if (s.Trim().Length > 0) { return (Nullable<T>)s; } return null; } } しかし、エラーが発生します:タイプ「string」を「T」に変換できませんか? これを回避する方法はありますか?ジェネリックスを使用してメソッドを作成することにはあまり慣れていません。