我们经常需要将值由某个字符分隔的字符串转换为列表。我想编写一个通用扩展方法,将字符串转换为指定类型的列表。这是我到目前为止所拥有的:
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();
}
但我得到一个错误。
无法将类型“字符串”转换为类型“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>(";");