我的字符串看起来像这样。为了视觉目的,每一行都以\r
分隔,放置在这里。
BEGIN_SECTIONS_INFORMATION
NUMSECTIONS=6
SECTION_GROUPNAME[1]=GROUP_1
SECTION_NAME[1]=foo
BEGIN_SECTION[1]
//blah...
END_SECTION[1]
SECTION_GROUPNAME[2]=GROUP_2
SECTION_NAME[2]=bazzz
BEGIN_SECTION[2]
//blah...
END_SECTION[2]
END_SECTIONS_INFORMATION
我需要将此字符串SECTION_GROUPNAME
拆分为IEnumerable<T>
,如下所示:
索引0:
SECTION_GROUPNAME[1]=GROUP_1
SECTION_NAME[1]=foo
BEGIN_SECTION[1]
//blah...
END_SECTION[1]
索引1:
SECTION_GROUPNAME[2]=GROUP_2
SECTION_NAME[2]=bazzz
BEGIN_SECTION[2]
//blah...
END_SECTION[2]
规则:
SECTION_GROUPNAME[n]
开头。SECTION_NAME[n]
,并且有BEGIN_
和END_
。我尝试过:
var sections = from line in sectionGroups
where line.StartsWith("SECTION_GROUPNAME")
group line by "SECTION_GROUPNAME";
也试过
var sections = sectionGroups.Split(new string[] { "SECTION_GROUPNAME" }, StringSplitOptions.None);
从this post开始,OP为组创建了枚举/列表。我无法做到这一点,因为我不知道字符串中会有多少组/部分。
答案 0 :(得分:2)
假设您想要一个public void Configuration(IAppBuilder appBuilder)
{
var config = new HttpConfiguration();
WebApiConfig.Register(config);
config.Filters.Add(new ExceptionHandlingAttribute());
// move other lines over here
appBuilder.UseWebApi(config);
}
个字符串,其中包含您描述的所有内容而没有关键结构。
基本思想是删除你不想要的东西(开头和结尾位),然后按所需字符串的开头拆分。最后,拆分文本不会将其放入结果数组中,因此您必须手动将其添加回来。
以下对我有用:
IEnumerable<T>