【发布时间】:2014-10-23 04:33:39
【问题描述】:
我有一个字典对象
Dictionary<double, byte[]>
具有 1.0、1.1、1.2、2.0、2.1、2.2、2.3、2.4、3.0、4.0、...等键
我需要连接值 (byte[]),使得键为 1.0、1.1、1.2 的值是一个字节[],键为 2.0、2.1、2.2、2.3、2.4 的值是一个字节[],依此类推第四次。
我能够获得最终需要的字节数组数量,但必须有一种比我尝试这样做更有效的方法。
var keys = chunkedStates.Keys;
List<int> Ids = new List<int>();
foreach(var key in keys)
{
var Id = Convert.ToInt32(Math.Truncate(key));
if (!Ids.Contains(Id))
{
Ids.Add(Id);
}
}
所以 Ids.Count 表示连接后我应该拥有的字节数组的数量。但我不知道如何从这里开始......
感谢任何指针。
【问题讨论】:
-
double是一个 可怕的 字典键,顺便说一句;键取决于完全相等;和double很少有的一件事:完全相等 -
@MarcGravell 感谢您的提示。会修复的。
-
@MarcGravell,请告诉我们可以在这里使用
SortedDictionary吗?另外,如果您确实需要double的类似功能怎么办? -
@HassanNisar
SortedDictionary将处理 ordering 问题(尽管成本不同);它不会处理剩下的事情
标签: c# .net dictionary bytearray