1

我想分隔字符串“ICMS_MG-PR-RJ-RS-SC”并需要排除“ICMS_”,将除“-”之外的其他值添加到字符串列表中。

List<string> states=new List<string>();

“状态”应包含以下值:MG、PR、RJ、RS、SC

4

3 回答 3

5

用空字符串替换前缀,并用-符号分割其余部分:

var text = "ICMS_MG-PR-RJ-RS-SC";
var states = text.Replace("ICMS_", "").Split('-').ToList();
于 2013-06-10T09:32:59.987 回答
1
var states = text.Split('_', '-').Skip(1).ToList();
于 2013-06-10T09:33:48.177 回答
0

除了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>,你可能应该。

于 2013-06-10T09:35:36.167 回答