使用 LINQ 拆分集合
Posted
技术标签:
【中文标题】使用 LINQ 拆分集合【英文标题】:Splitting a collection with LINQ 【发布时间】:2011-06-29 03:50:33 【问题描述】:我确信有一个简单的方法可以做到这一点,但我想不出...
我有一个带有组字符串字段的集合。我想做的是将该集合拆分为每个组的 (n) 个集合。我最终会得到一个类似这样的循环:
foreach (var group in groups)
foreach (var item in group)
//process item.
有什么指导吗???谢谢!
例如编辑:
鉴于此:
var people = new List(); people.Add(new Person FirstName = "John", LastName = "Doe" ); people.Add(new Person FirstName = "Jane", LastName = "Doe" ); people.Add(new Person FirstName = "Bob", LastName = "Barker" ); people.Add(new Person FirstName = "Billy", LastName = "Barker" ); people.Add(new Person FirstName = "Billy", LastName = "Bob" );我想要一个包含 3 个元素的集合。元素 1 将是一群人(Does),元素 2 将是一群人(The Barkers),元素 3 将是一个比利鲍勃的集合。
【问题讨论】:
再描述一下集合元素类型。举例说明 - 示例输入和预期输出。 【参考方案1】:也许,GroupBy 会有所帮助?
var grouped = groups.GroupBy(g => g.Group);
【讨论】:
GroupBy 是关键。谢谢!!【参考方案2】:编辑:使其适合示例。我们按姓氏对人进行分组,遍历组,然后遍历每个组中的每个人
var groupedCollection = from person in people
group person by person.LastName; // or use .GroupBy()
foreach (var group in groupedCollection)
var lastName = group.Key;
foreach (var person in group)
// do stuff with person
阅读更多分组示例here
【讨论】:
这似乎让我得到了不同的组名。我想隔离集合中属于组的项目。以我的编辑为例。 啊,感谢您的意见。我错误地查看了 GroupBy 操作的结果。它确实做了我想要它做的事情。 LINQ FTW!以上是关于使用 LINQ 拆分集合的主要内容,如果未能解决你的问题,请参考以下文章