这是我的代码:
string _type="System.Collections.Generic.List<PhilpostDB.ViewModel.Person>";
_type = Regex.Replace(_type, @"[.\w]+\.(\w+)", "$1"); // this result=List<Person>
我想要结果:_type=PhilpostDB.ViewModel.Person
搜索:
[^<]+\<([^>]+)\>
并替换为:
$1
IE:
_type = Regex.Replace(_type, @"[^<]+\<([^>]+)\>", "$1");
应该只使用字符串方法:
string _type = "System.Collections.Generic.List<PhilpostDB.ViewModel.Person>";
string[] tokens = _type.Split('<');
string result = tokens[0].Split('.').Last();
if (tokens.Length > 1)
{
string token2 = tokens.Last().Split('.').Last();
result = string.Format("{0}<{1}", result, token2);
}
编辑感谢蒂姆,但如果我想要结果 = PhilpostDB.ViewModel.Person?
string genericType = _type.Split('<').Last().TrimEnd('>');