【发布时间】:2017-01-29 23:34:04
【问题描述】:
我有一个“DataCls”类,从其他来源我得到“消息”字符串,格式为“propertyName:value”。
public class DataCls
{
public string Message { get; set; }
public string Priority { get; set; }
public DateTime Time { get; set; }
public string Tag { get; set; }
}
dataCls.Message = "[AE][1W] Message:Console Station is not available Priority:Info Time:Sep 21 2016 1:13PM Tag:/System Components/R431ESV/Stations/Console Stations/CStn01";
- 消息:示例消息
- 优先级:信息
- 时间:2016 年 9 月 21 日下午 1:13
- 标签:/abc/pqr/xyz
现在我需要拆分此字符串并使用上述值更新“DataCls”类的每个属性。请推荐!!!
我用下面的方法试过了,但没有用,
static void Main(string[] args)
{
DataCls dataCls = new DataCls();
dataCls.Message = "[AE][1W] Message:sample message Priority:Info Time:Sep 21 2016 1:13PM Tag:/abc/pqr/xyz";
dataCls.Message = dataCls.Message.Split(':')[1].ToString();
dataCls.Priority = dataCls.Message.Split(':')[2].ToString();//error
}
【问题讨论】:
-
Split('{char}') 生成一个字符串数组,其中包含您输入的字符的分隔符。无需调用ToString(),返回的数组索引为0。
-
我的代码有 2 个问题。 1. 消息在索引 1 处,一旦派生出来,那么随着消息的变化,我无法进一步派生任何东西 2. 时间也有冒号(:) 及时。
-
我不会使用 ':' 作为您的分隔符,因为您也在日期格式中使用它..
-
@Danoram,有什么我可以用正则表达式做的吗,请建议!1
-
您可以控制输入字符串吗?我建议将字符更改为拆分为不太可能发生的字符,例如管道
|。
标签: c#