[c#]由参数组顺序列表

标签: Linq C#
发布时间: 2017/2/28 21:36:30
注意事项: 本文中文内容可能为机器翻译,如要查看英文原文请点击上面连接.

我想组相关条目的列表。

我的列表看起来像︰

new List<string>() { "Entry1", "Metadata1", "Metadata2", 
                       "Entry2", "Metadata3", "Metadata4" };

我想要上"进入"组,这样,我结束了 { "Entry1", "Metadata1", "Metadata2" }{ "Entry2", "Metadata3", "Metadata4" } 的群体。

"进入"字段之间的项的数目是不确定的。 为实现此目的使用 LINQ !

我如何可以分组到由分隔的集合这些 Entry 元素?

解决方法 1:

一个可能的解决方案,这可能会得到的指标 Entries ,并使用 GetRange 方法的 List<T> 来获取项目中使用的索引的范围︰

var indices = yourList
       .Where(x => x.StartsWith("Entry"))
       .Select(x => yourList.IndexOf(x))
       .ToList();

var groups = indices
     .Select((x,idx) => idx != indices.Count - 1 
                               ? yourList.GetRange(x, indices[idx + 1] - x)
                               : yourList.GetRange(x, yourList.Count - x))
     .ToList();
官方微信
官方QQ群
31647020