目前我的数据正在被第三方设备生成的我的程序中读取。我通过由两个单独的值组成的字符串将它们连接在一起,并用短划线和句号分隔。我最初将这些数据放在字典中,使用第一个值作为关键字(作为常量),第二个作为它的值,因为它随时可能会改变。词典的替代品
随着字典的排序,数值按降序排列,以便最低值是字典中的第一个条目,第二个最低的是第二个条目,依此类推。我相信这也是更新的,所以如果第5项突然低于第1项,它将移动它的位置成为字典的第一个输入,并将其他所有项都压低。
要我使用LINQ的值用下面的代码进行排序:
// Order by values.
var items = from pair in dictionary
orderby pair.Value ascending
select pair;
// Display results.
foreach (KeyValuePair<string, float> pair in items)
{
Debug.Log( "Key value: " + pair.Key + " Value: " + pair.Value + "\n");
}
通过,当我跑这对我的iPad我得到在Xcode(该数据是通过在Xcode插件发送JIT错误到Unity)。我环顾四周,结果发现一些LINQ功能在Xcode上不能很好地工作。
有人可以请建议另一种方式,我可以以类似的方式不依赖于使用LINQ排序我的数据?
编辑 我需要澄清:与第三方设备正在直播中的值,我需要一种方法来扎到价值的关键。我有各种各样的设备发送数据,但他们都有独特的常量,我正在使用它来将价值。这样我就知道哪个阅读器来自哪个设备。
正如我就不说了,这是当我运行上面的代码Xcode的消息我得到:
ExecutionEngineException:试图JIT编译方法 “System.Linq.OrderedEnumerable
1<System.Collections.Generic.KeyValuePair
2>: GetEnumerator()'运行时使用--aot-only。
字典别没有订单..他们的条目进入“桶”如果你需要一个有序列表..一个基于分区的集合不是你的答案。 –
我意识到这一点,但我相信我找到了一种使用LINQ将字典排序的方法。事情是,我需要能够将每个值与常量相关联,如果不是,我只会使用数组或其他东西。所以我愿意接受有关替代方案的建议。 – N0xus
“我在Xcode中遇到了JIT错误” - 确切地说有什么错误? – Dennis