在第一次出现角色后从列表中选择项目

mr.*_*eze 2 c# linq

给出这样的列表:

["singing", "office", "1995>Work Photos", "Kevin", "and", "Emma", "Holiday Party>Karaoke"]
Run Code Online (Sandbox Code Playgroud)

什么是最简洁的LINQ查询,用于选择列表中包含字符">"及其后的所有元素的第一个元素.对于上面的例子,我想要这个结果:

["1995>Work Photos", "Kevin", "and", "Emma", "Holiday Party>Karaoke"]
Run Code Online (Sandbox Code Playgroud)

我可以明显地循环并手动完成,但感觉就像那里有一个优雅的单线.这是手动尝试:

var found = false;
var filtered = new List<string>();
foreach (var itm in list){
   if (itm.Contains(">")) found = true;
   if (found) filtered.Add(itm);
}
Console.WriteLine(filtered);
Run Code Online (Sandbox Code Playgroud)

oct*_*ccl 6

我想你正在寻求SkipWhile扩展方法:

var ar = new string []{ "singing", "office", "1995>Work Photos", "Kevin", "and", "Emma", "Holiday Party>Karaoke"};
var r= ar.SkipWhile(s => !s.Contains(">"));
Run Code Online (Sandbox Code Playgroud)