我想分隔字符串“ICMS_MG-PR-RJ-RS-SC”并需要排除“ICMS_”,将除“-”之外的其他值添加到字符串列表中。
List<string> states=new List<string>();
“状态”应包含以下值:MG、PR、RJ、RS、SC
用空字符串替换前缀,并用-
符号分割其余部分:
var text = "ICMS_MG-PR-RJ-RS-SC";
var states = text.Replace("ICMS_", "").Split('-').ToList();
var states = text.Split('_', '-').Skip(1).ToList();
除了lazyberezovsky的回答,您还可以这样做:
var input = "ICMS_MG-PR-RJ-RS-SC";
var states = input.Split('_')[1].Split('-').ToList();
或这个
var states = input.Split('_', '-').Skip(1).ToList();
或这个
var states = input.Substring(input.IndexOf('_') + 1).Split('-').ToList();
但是请注意,除非您确实需要能够通过索引访问每个元素,否则可能不需要调用ToList
. 如果你能满足于IEnumerable<string>
,你可能应该。