Vb.net LINQ数据表

Vb.net LINQ数据表,vb.net,linq,datatable,grouping,Vb.net,Linq,Datatable,Grouping,我有一个DataTable,有超过100列和超过280行需要分组 然后分别处理每一行。这个 UserID是唯一的,但是,每个UserID可以有多行(每个 UserID可以有1到20行与之关联)。 包括UserID在内的所有列都是字符串值 我使用了如下代码: Dim src = From row In sampleTable.AsEnumerable() 返回(DataRow的)EnumerablerRowCollection,但当我尝试按 DataTable的UserID列出现错误 我需要按d

我有一个DataTable,有超过100列和超过280行需要分组 然后分别处理每一行。这个 UserID是唯一的,但是,每个UserID可以有多行(每个 UserID可以有1到20行与之关联)。 包括UserID在内的所有列都是字符串值

我使用了如下代码:

Dim src = From row In sampleTable.AsEnumerable()
返回(DataRow的)EnumerablerRowCollection,但当我尝试按 DataTable的UserID列出现错误

我需要按disect UserID对DataTable中的行进行分组,并处理每一行。我还需要每10分钟记录一次 我处理不同的用户ID以满足子处理需求

如何按不同的UserID对数据表进行分组,并访问具有重复UserID的所有行

在收到回复后,我尝试了以下方法:

Dim src = loanTable.AsEnumerable().ToLookup(x >= x.bSSN, x >= x)
在ToLookup()上出错。重载解析失败,因为无法使用这些参数调用可访问的“ToLookup”(无法推断类型参数“TKey”)。
此外,ToLookup(x=>x.UserID,x=>x)中的“x”返回一个未声明“x”的错误。

我不知道您在
GroupBy
方面的问题,但这是有效的:

Dim userIdGroups = sampleTable.AsEnumerable().GroupBy(Function(row) row.Field(Of Int32)("UserId"))
现在,每个组都包含具有该用户标识的所有行

另一个选项是使用查找(类似于字典,但您可以访问不可用的键,并返回空的行序列,而不是异常):

您还可以为每个使用
,以枚举
GroupBy
查找
的所有组

For Each rg In userIdLookup 
    Dim userid = rg.Key
    Dim count = rg.Count()
    ' if you want to enumerate the rows:
    For Each row In rg
        ' process
    Next
Next

我不知道您在使用
GroupBy
时遇到的问题,但这是有效的:

Dim userIdGroups = sampleTable.AsEnumerable().GroupBy(Function(row) row.Field(Of Int32)("UserId"))
现在,每个组都包含具有该用户标识的所有行

另一个选项是使用查找(类似于字典,但您可以访问不可用的键,并返回空的行序列,而不是异常):

您还可以为每个
使用
,以枚举
GroupBy
查找
的所有组

For Each rg In userIdLookup 
    Dim userid = rg.Key
    Dim count = rg.Count()
    ' if you want to enumerate the rows:
    For Each row In rg
        ' process
    Next
Next

请提供您当前的尝试并附加完整的错误消息。请提供您当前的尝试并附加完整的错误消息。您所指的For each将如下所示:对于userIdGroups中的每一行,接下来--?@RandyJohnson:代码中的
变量将有一个
p属性,您可以在其中访问
用户ID
。好的,我知道在哪里可以获取每个组的密钥以及计数,我是否使用嵌套的for each来处理每个组中的每一行?我必须从每一行的每一列中获取信息,并将其输入IBM大型机反射会话。@RandyJohnson:为您所指的每一行添加了该属性下面是这样的:对于userIdGroups中的每一行-?@RandyJohnson:代码中的
变量将有一个
属性,您可以在其中访问
UserId
。好的,我知道在哪里可以获得每个组的键以及计数,我是否使用嵌套的For Each来处理每个组中的每一行?我必须这样做从每行的每一列中获取信息,并将其输入到IBM大型机反射会话中。@RandyJohnson:已添加