【发布时间】:2010-09-18 23:31:33
【问题描述】:
我有一个本质上是名称值对的锯齿状数组——我需要从中生成一组唯一的名称值。锯齿状数组大约有 86,000 x 11 个值。
我必须以何种方式存储名称值对(单个字符串“name=value”或专门的类,例如 KeyValuePair)对我来说并不重要。
附加信息:有 40 个不同的名称和大量不同的值 - 可能在 10,000 个值区域内。
我正在使用 C# 和 .NET 2.0(性能太差了,我认为将整个锯齿状数组推入 sql 数据库并从那里进行选择可能会更好)。
以下是我当前使用的代码:
List<List<KeyValuePair<string,string>>> vehicleList = retriever.GetVehicles();
this.statsLabel.Text = "Unique Vehicles: " + vehicleList.Count;
Dictionary<KeyValuePair<string, string>, int> uniqueProperties = new Dictionary<KeyValuePair<string, string>, int>();
foreach (List<KeyValuePair<string, string>> vehicle in vehicleList)
{
foreach (KeyValuePair<string, string> property in vehicle)
{
if (!uniqueProperties.ContainsKey(property))
{
uniqueProperties.Add(property, 0);
}
}
}
this.statsLabel.Text += "\rUnique Properties: " + uniqueProperties.Count;
【问题讨论】:
-
您能否提供更多关于数据的示例?我不确定我是否理解您在这里尝试做的事情。你想要一套钥匙,还是一对?
-
我在使用垫子 - 我不太明白锯齿状数组的来源。一些显示输入数据的示例代码会非常方便。
-
在您的锯齿状数组中,名称和值之间是否存在多对多相关性?您是否试图获得一对一的相关性或一对多的相关性作为输出(再次命名为值)?如果你能回答这个问题,那么我可以提供一个更好的答案。
标签: c# .net performance collections