根据条件查找字符串的特定部分

时间:2018-12-01 18:22:32

标签: c# string

下面有逗号分隔的字符串。此字符串包含应用程序中进行处理所需的关系。

string userInputColRela = "input1:Student_Name, input2:Student_Age";

现在,如果我将输入提供为Student_Name,则需要提取input1,如果提供的输入是Student_Age,则需要提取input2

我该如何实现?我知道我可以进行循环,但这将是一个冗长的解决方案,其他方法是什么?

2 个答案:

答案 0 :(得分:2)

您可以通过首先在逗号处进行拆分,然后在分号处再次进行拆分来解析输入字符串,以字典形式获取包含在其中的键值对。例如:

string userInputColRela = "input1: Student_Name, input2: Student_Age";

var inputLookup = userInputColRela
    .Split(',')
    .Select(a => a.Split(':'))
    .ToDictionary(a => a[0].Trim(), a => a[1].Trim());

var studentName = inputLookup["input1"];

答案 1 :(得分:1)

如果您的字符串始终采用input1:Student_Name, input2:Student_Age格式,则可以使用Dictionary<k,v>Split()函数,例如

        string userInputColRela = "input1:Student_Name, input2:Student_Age";
        string input = "input1";
        var args = userInputColRela.Split(',');
        Dictionary<string, string> inputs = new Dictionary<string, string>();
        foreach (var item in args)
        {
            var data = item.Split(':');
            inputs.Add(data[0], data[1]);
        }

        Console.WriteLine(inputs[input]);