如何将矩阵数据保存到可以使用索引查询的对象

时间:2016-06-14 10:43:34

标签: c# vb.net matrix

我的数据格式如下

Henry  |Ford  |34|Yes|Absolutely
Wiliman|Tenner|44|No |Why Not?

每行可以有不同的列数。我希望将所有值保存为字符串。我希望以一种方式存储数据,以后我可以用索引查询它们,但还没找到正确的方法。

我想出了使用List(Of List(of String))但未找到way to query this with indexes的想法。

另一种方法是使用数据集并将数据写入数据表但这对我来说就像是大锤破解坚果方法。

2 个答案:

答案 0 :(得分:1)

正如Nkosi所提到的,您只需使用listToAccess(i)(j)访问列表中的项目。

但是,您确实要小心,因为在列表中查找值为O(n)。使用列表列表,查找变为O(n ^ 2)。

如果您的辅助列表大小大致相同,我建议使用数组(矩阵)。您可以将辅助大小设置为当前辅助列表的最大大小。虽然这会浪费一些空间,但你的发现会变成O(1)。

Dim matrix As Double(,) = New Double(firstSize, secondSize) {}

然后你可以matrix(i,j)

答案 1 :(得分:0)

参考此答案:add a list into another list in vb.net

阅读它们就像访问任何其他列表一样。

获取第一条记录中的第一个字段

Dim oval

Public Sub Worksheet_SelectionChange(ByVal Target As Range)
    If Target.Count > 1 Then Exit Sub
    oval = Target.Value
End Sub

Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Count > 1 Then Exit Sub
    If Not Intersect(Target, Range("C2:C1048576")) Is Nothing Then
        Application.EnableEvents = False
            Range("G" & Target.Row) = Now()
            Range("H" & Target.Row) = oval
        Application.EnableEvents = True
    End If
End Sub

第一条记录中的第二个字段

return records(0)(0)