いくつかの文字で区切られた値を持つ文字列をリストに変換する必要があることがよくあります。文字列を指定された型のリストに変換する汎用拡張メソッドを作成したいと考えています。これが私がこれまでに持っているものです:
public static List<T> ToDelimitedList<T>(this string value, string delimiter)
{
if (value == null)
{
return new List<T>();
}
var output = value.Split(new string[] { delimiter }, StringSplitOptions.RemoveEmptyEntries);
return output.Select(x => (T)x).ToList();
}
しかし、エラーが発生します。
タイプ 'string' をタイプ 'T' に変換できません。
これを行うためのより良い方法はありますか、またはさまざまなタイプのリストや doConvert.ToInt32()
などに対して複数の拡張メソッドを作成する必要がありますか?
アップデート
私はこのようなことをしようとしています:
var someStr = "123,4,56,78,100";
List<int> intList = someStr.ToDelimitedList<int>(",");
また
var someStr = "true;false;true;true;false";
List<bool> boolList = someStr.ToDelimitedList<bool>(";");