C# 设计建议:解析文本行并转储某些字段并分配给;“桶”林克,雷格克斯,

C# 设计建议:解析文本行并转储某些字段并分配给;“桶”林克,雷格克斯,,c#,regex,linq,parsing,lambda,C#,Regex,Linq,Parsing,Lambda,我正在寻求关于如何最好地解决以下情况的建议: 这些文本文件包含有关城市事故的某些元数据。这些文本文件的大部分内容都转储到数据库中。文本文件的主要部分,即正文,被输入到事故表中的这一字段中,例如报告正文 我必须根据解析的内容将这一列的内容读取/解析到特定字段中。例如,以下是文本文件中的一行,输入数据库中的ReportBody字段: “2014年3月11日19时23分,警官提交了交通事故报告-徽章8394超速通过学校区域-员工ID:FOWSL,xxx,yyy” 一般来说,所有这些“报告”都遵循以下格

我正在寻求关于如何最好地解决以下情况的建议:

这些文本文件包含有关城市事故的某些元数据。这些文本文件的大部分内容都转储到数据库中。文本文件的主要部分,即正文,被输入到
事故
表中的这一字段中,例如
报告正文

我必须根据解析的内容将这一列的内容读取/解析到特定字段中。例如,以下是文本文件中的一行,输入数据库中的
ReportBody
字段:

“2014年3月11日19时23分,警官提交了交通事故报告-徽章8394超速通过学校区域-员工ID:FOWSL,xxx,yyy”

一般来说,所有这些“报告”都遵循以下格式:

“在[
时间[
日期
]一个[
事件类型]
事件的报告由官员提交-[
徽章号
][
类别
]-员工ID:[
ID号
],[
其他财产1
],[
其他财产2
]

括号内的所有内容都是我正在收集到
事故
类中的内容,并将
事故
的集合提交到数据库中。所有未包含在括号内的内容,我想我可以使用这些字符串作为参考点,我必须收集附近的内容,例如,我知道每次我遇到“由官员-”的字符串时,我都会将该[Badge_Number]字符串分配到
Confect
类的setter中。与遇到“-Employee ID:”时的逻辑相同,我知道我需要提取“:”和其后的第一个空格之间的内容,在本例中,这是
意外事件
EmployeeId
属性

大约两年前,我开始大量使用
LINQ
,但回想起来,我能够进行一些繁重的解析,并认为它非常优雅。现在来看,我不确定什么是最佳路径,因为我一直在另一个框架中工作,也不确定
Lambdas
谓词
RegEx
,等等是否是最佳可行路径


任何建议都将不胜感激

LinQ不是关于解析文本的。我认为你最好的选择是正则表达式。@nvoigt:LINQ在处理对象和集合之类的OOP概念时看起来更自然。与RegEx相比,我能够利用这些概念提供的巨大灵活性,我觉得RegEx适合“解析文本”,我觉得我的案例更复杂(我想)。谢谢你的评论。