linqpad 中一个非常粗略的 Loop 实现:
void Main()
{
var input = new [] {
"junk ....",
"Title Mr .....",
"alias johnsmith...",
"alias john.smith...",
"Salutation ...",
"junk ...",
"junk ....",
"Title Mrs .....",
"alias janesmith...",
"alias jane.smith...",
"Salutation ...",
"junk ..."
};
for (int i = 0; i < input.Count(); i++)
{
if(input[i].StartsWith("Title"))
{
var tempUser = new user();
tempUser.Title = input[i];
i++;
while(input[i].StartsWith("alias"))
{
tempUser.Aliases.Add(input[i]);
i++;
}
if(input[i].StartsWith("Salutation"))
{
tempUser.Salutation = input[i];
}
tempUser.Dump();
}
}
}
public class user
{
public user()
{
Aliases = new List<string>();
}
public string Title { get; set;}
public string Salutation { get; set;}
public List<string> Aliases { get; set;}
}
它没有很多错误处理,并对您的数据做出一些假设,但这将是一个很好的起点。