c# - 从字符串中获取各种变量的最有效方法

标签 c# string

我目前正在研究远程控制软件。该单元提供以下字符串(没有任何换行符或其他内容):

...some_general_infomations,param1=value1,param2=value2,param3=value3,paramN=valueN,...  

我需要以某种方式将这些值分配给一些变量。由于这个字符串的长度在变化,我无法使用子字符串(如果我错了请纠正我)。

执行此操作最有效(和最快)的方法是什么?

编辑: @Darin 的解决方案适用于大多数消息,但这里的解决方案非常棘手:

CFG=0<\r><\n>BOU=0<\r><\n>ALA:D1=132,D2=0,D3=0<\r><\n>COD1:S=13<\r><\n>-C1=5,N1=12345678,CLS=0,VAL=0<\r><\n>-C2=5,N2=,CLS=0,VAL=0<\r><\n>COD2:S=0<\r><\n>-C1=0,N1=,CLS=0,VAL=0<\r><\n>ENT:APPEL1=0,APPEL2=0<\r><\n>USI:DEP=0,AES=1,V8K=1,FIL=1,DSP=0,RSC=1,AL3=0,TDA=1,A64=0,CCS=0,RES=0,xxx=0,xxx=0,5AS=1<\r><\n>PERF:<\r><\n>-DMIN=0,0,<\r><\n>OK<\r><\n>

我至少需要获取 S、C1、N1 的值。即使我删除了换行符,这些参数也会被逗号或冒号分隔。 我该如何处理这个字符串?

最佳答案

一个好的“ol split”应该有效:

var input = "...some_general_infomations,param1=value1,param2=value2,paramN=valueN";
var tokens = input.Split(',');
if (tokens.Length > 0)
{
    foreach (var token in tokens)
    {
        var parts = token.Split('=');
        if (parts.Length > 1)
        {
            string paramName = parts[0];
            string paramValue = parts[1];
        }
    }
}

关于c# - 从字符串中获取各种变量的最有效方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5160102/

相关文章:

c# - Rhino Mocks - 使用 ref/out 参数模拟集合

c# - 如何在 PDFsharp 中定位和居中文本?

c# - 如何识别点击了哪个按钮? (MVVM)

c# - 没有 File.ReadAllText 有什么办法吗?

c# - 将图像从 iPhone 发送到 .net 服务器

java - p :selectOneMenu: Validation Error: Value is not valid

C++:使用sizeof的char数组的大小

java - 为什么\n 和 (String)System.getProperty ("line.separator");采取不同的行动?

python-3.x - 在 Pandas DataFrame 的每一行中添加具有最受欢迎字符串值的新列

java - 将文本文件 cat 放入标准输入中,导致数组中为空?