拆分字符串值和存储在列表中

时间:2013-06-10 09:31:46

标签: c# .net list split

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

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

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

3 个答案:

答案 0 :(得分:5)

用空字符串替换前缀,并按-符号分隔休息:

var text = "ICMS_MG-PR-RJ-RS-SC";
var states = text.Replace("ICMS_", "").Split('-').ToList();

答案 1 :(得分:1)

var states = text.Split('_', '-').Skip(1).ToList();

答案 2 :(得分: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>,你可能应该这样做。