【问题标题】:Xamarin Android - sorting iBeacon iCollection causes exceptionXamarin Android - 对 iBeacon iCollection 进行排序会导致异常
【发布时间】:2014-10-06 13:43:04
【问题描述】:

我正在尝试对 iBeacon 对象的 iCollection 进行排序,但代码一运行就会引发异常。我试图运行的代码如下。它无需任何排序或排序即可正常工作,但我需要能够按邻近度对集合进行排序,如图所示(首先具有最低邻近度,即邻近度等于 1):

async void RangingBeaconsInRegion(object sender, RangeEventArgs e)
   {

     if (e.Beacons.Count > 0) 
      {
        var orderedBeacons = e.Beacons.OrderBy(b => b.Proximity); //this causes the problem

      foreach (var beacon1 in orderedBeacons) 
       {
          //do all my stuff here on my ordered beacons
       }
    }
}

这是一个例外:

[mono] Unhandled Exception:
[mono] System.ArgumentException: 'jmethod' must not be IntPtr.Zero.
[mono] Parameter name: jmethod
[mono]   at Android.Runtime.JNIEnv.CallObjectMethod (IntPtr jobject, IntPtr jmethod) [0x00000] in <filename unknown>:0 
[mono]   at Android.Runtime.JavaCollection`1[RadiusNetworks.IBeaconAndroid.IBeacon].CopyTo (RadiusNetworks.IBeaconAndroid.IBeacon[] array, Int32 array_index) [0x00000] in <filename unknown>:0 
[mono]   at System.Linq.Enumerable.ToArray[IBeacon] (IEnumerable`1 source) [0x00000] in <filename unknown>:0 
[mono]   at System.Linq.QuickSort`1[RadiusNetworks.IBeaconAndroid.IBeacon]..ctor (IEnumerable`1 source, System.Linq.SortContext`1 context) [0x00000] in <filename unknown>:0 
[mono]   at System.Linq.QuickSort`1+<Sort>c__Iterator0[RadiusNetworks.IBeaconAndroid.IBeacon].MoveNext () [0x00000] in <filename unknown>:0 

有什么想法可以让我正确订购该系列吗?

【问题讨论】:

  • 我在 AltBeacon 库中看到了同样的问题。我认为这与从 JavaCollection 到 .NET ICollection 的类型转移有关,但我仍在寻找。
  • 我得到了同样的结果。很奇怪。我认为是 Xamarin 错误或 AltBeacon 库中的竞争条件。

标签: android sorting xamarin ibeacon icollection


【解决方案1】:

这应该适合你。告诉我进展如何。

var allBeacons = new List<Beacon>();

foreach(var b in e.Beacons)
{
    allBeacons.Add(b);
}

var orderedBeacons = allBeacons.OrderBy(b => b.Proximity);

【讨论】:

  • 谢谢克里斯。好东西,完美!
猜你喜欢
  • 2015-10-24
  • 1970-01-01
  • 2021-08-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-10-07
  • 2019-08-01
相关资源
最近更新 更多