我有一个存储过程,返回3列/字段,我将结果集保存在arrayList中。每行包含三个字段ID,name,description。我想从这个数组中获取所有不同的类别到单独的数组或其他一些对象。
例如,如果我的输出有sproc返回的100行,则可能有10行包含category1,20行包含category2,35行包含category3等等。
现在我需要显示如下所示,即显示每个类别下的所有ID。
category1
ID Name
1 A
19 B
32 C
category2
ID Name
10 D
11 T
54 D
依旧......
我可以使用gridview或Repeater或table来显示它。
示例代码:
Dim a As ArrayList
a = //values from sproc
'we need to implement some logic here display like above.
请让我知道如何正确显示。提前谢谢!
答案 0 :(得分:0)
一些嵌套的linq查询应该会得到你的结果...我已经把这个原则的例子放在一起,但当然它需要适应你的程序(不能说出你的语言和语言) #39;重新使用你的标签/帖子,所以这是在vb.net中):
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
Dim lstAry As New List(Of String())
lstAry.Add({"1", "a", "d1"})
lstAry.Add({"1", "b", "d3"})
lstAry.Add({"2", "c", "d2"})
lstAry.Add({"3", "a", "d4"})
lstAry.Add({"3", "a", "d5"})
Dim distinctCats = lstAry.Select(Function(x) x(0)).Distinct
If distinctCats IsNot Nothing Then
For Each distinctcat As String In distinctCats
Debug.Print("")
Debug.Print(distinctcat)
Dim catmembers = lstAry.Where(Function(x) (x(0) = distinctcat)).Distinct
If catmembers IsNot Nothing Then
For Each catmember As String() In catmembers
Debug.Print(catmember(1) & " " & catmember(2))
Next
End If
Next
End If
End Sub
输出:
1
a d1
b d3
2
c d2
3
a d4
a d5
因此,如果您在阵列列表中运行此子逻辑,则应该将结果格式化为与您正在寻找的内容非常接近的格式。首先,我获取不同的类别,然后为每个类别获取不同的数组,并打印每个组。