如何将list<>里的元素分组放入新的list<>?

ameba_h 2011-03-24 11:27:38
我有一个集合 list<grid> ,我想按grid.h 分组并将分出来的组放到新的组里。这个该怎么做呢?

list<grid>里的元素不是固定的。grid.h的值也是不固定的。
...全文
427 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
ameba_h 2011-03-26
  • 打赏
  • 举报
回复
原来linq那么强大!一行代码就能搞定了。谢谢楼上各位
Tosp2012 2011-03-26
  • 打赏
  • 举报
回复
[Quote=引用楼主 ameba_h 的回复:]
我有一个集合 list<grid> ,我想按grid.h 分组并将分出来的组放到新的组里。这个该怎么做呢?

list<grid>里的元素不是固定的。grid.h的值也是不固定的。
[/Quote]
用3#的转换成vb就可以了。
msdn165168 2011-03-26
  • 打赏
  • 举报
回复
Dim ffvv(n - 1) As Single
Array.ConstrainedCopy(LLLV, 5, ffvv, 0, 10)

LLLV是一个数组,功能是把一个数组理的部分数据(从第5个到第10个数据复制到数组ffvv)复制到新数组里
q107770540 2011-03-25
  • 打赏
  • 举报
回复
linq
以C#举例【不会VB】
var list=new List<grid>();
var newlist=(from l in list
group l by l.h into m
select new {m.key,c=m.count()}).ToList()
ameba_h 2011-03-25
  • 打赏
  • 举报
回复
没看明白……
xingyuebuyu 2011-03-24
  • 打赏
  • 举报
回复
Imports System.Reflection
Public Class Form1

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Dim l As New List(Of grid)
For ii As Integer = 0 To 10
Dim gd As New grid
gd.h = Chr(65 + ii \ 2) & Chr(66 + ii \ 2)
gd.i = ii
l.Add(gd)
Next

Dim lt = From g In l _
Group By g.h Into Group


For Each gru In lt
Console.WriteLine(gru.h)
''得到新的list
Dim llt As List(Of grid) = gru.Group.ToList()
For Each gu In gru.Group
Console.WriteLine(gu.h + "--" + gu.i.ToString)
Next
Next

End Sub

Public Class grid
Public h As String
Public i As Integer
End Class
End Class

16,553

社区成员

发帖
与我相关
我的任务
社区描述
VB技术相关讨论,主要为经典vb,即VB6.0
社区管理员
  • VB.NET
  • 水哥阿乐
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧