最简单的数据结构

时间:2010-03-15 17:53:59

标签: vb.net

我正在尝试在我的vb.net中创建以下矩阵,因此在处理过程中我可以获得字母表的匹配分数,例如:     A和N的匹配是什么?我将查看我的内置矩阵并返回-2 同样,P和L的匹配是什么?我将查看我的内置矩阵并返回-3

请建议我如何去做,我试图使用这样的嵌套字典:

Dim myNestedDictionary As New Dictionary(Of String, Dictionary(Of String, Integer))()
Dim lTempDict As New Dictionary(Of String, Integer)
lTempDict.Add("A", 4)
myNestedDictionary.Add("A", lTempDict)

另一种方法是从基于文本的文件中读取Matrix,然后填充二维数组。

感谢。

alt text http://www.clcbio.com/scienceimages/img8.png

3 个答案:

答案 0 :(得分:5)

我认为使用带有双字符键的非嵌套字典会更简单。

myDictionary.add("AA", 4)

答案 1 :(得分:3)

使用二维数组并为您的字母创建一个映射作为枚举,该枚举也将作为数组的索引:

public enum AlphaBet
{
   A = 0,
   R = 1,
   ...
}

// Init the array
int[][] scores = ...;

int score = scores[AlphaBet.A][AlphaBet.N]; // score = -2

答案 2 :(得分:1)

获取一个将char映射到int的字典。整数必须是连续的。然后拿2d数组,就是这样。首先你看两个字符的索引字典然后转到数组