获取子字符串

时间:2013-10-02 19:16:55

标签: c# string

问题在于C#。 我有一个字符串“value1=1234;value2=2345;value3=3456;value4= ..."

检索值的最佳方法是什么?

我考虑过String.Split(";"),但我不知道如何只检索这些值。我得到的结果包括我不想要的前缀。 我只想要"1234", "2345", "3456"...的其他值,并将它们放入字符串列表中。

我该如何解决这个问题?感谢。

2 个答案:

答案 0 :(得分:10)

如果格式总是固定的,你可以通过LINQ轻松地完成:

List<string> values = theString.Split(';').Select(s => s.Split('=')[1]).ToList();

请注意,如果您的输入字符串以分号结尾,可能想要使用RemoveEmptyEntries

List<string> values = theString
                         .Split(new[]{';'}, StringSplitOptions.RemoveEmptyEntries)
                         .Select(s => s.Split('=')[1]).ToList();

这可以防止在Select内发生异常。但是,如果输入不是以分号结尾,则不需要这样做。

答案 1 :(得分:4)

var text =  "value1=1234;value2=2345;value3=3456;value4= ...";
var pieces = text.Split('=');
var values = new Dictionary<string,string>();

for(int index = 0; index < pieces.Length; index += 2)
{
    values.Add(pieces[index], pieces[index + 1]);
}

这将为您提供一对字典,其中键是'='的左侧,值是字符串表示的值,允许您这样做:

var value1 = values["value1"];
var value2 = values["value2"];