Vb.net LINQ数据表
我有一个DataTable,有超过100列和超过280行需要分组 然后分别处理每一行。这个 UserID是唯一的,但是,每个UserID可以有多行(每个 UserID可以有1到20行与之关联)。 包括UserID在内的所有列都是字符串值 我使用了如下代码: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
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:已添加