我试图以最佳方式对两个数组(通常是键和值)进行排序。在标准C#中,方法Array.Sort(Array,Array)适用于它,但是,没有这样的方法。
更明确地说,此代码可以在标准C#中使用,但不能在跨平台PCL构建中使用:
double[] keys = new double[100];
object[] values = new object[100];
Array.Sort(keys, values);
是否有这样的方法可用,或者我必须使用和实例化这样的匿名类型?
double[] keys = new double[100];
object[] values = new object[100];
var list = Enumerable.Range(0, keys.Length).Select(i => new { Val = keys[i], Obj = values[i] }).ToList();
list.Sort((v1, v2) => v1.Val.CompareTo(v2.Val));
for (int i = 0; i < values.Length; i++)
{
values[i] = list[i].Obj;
keys[i] = list[i].Val;
}
编辑:有人说我应该看到这个功能,但是,我正在使用它:
#region Assembly System.Runtime, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
// C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETPortable\v4.5\Profile\Profile259\System.Runtime.dll
#endregion
答案 0 :(得分:1)
您可以使用Array.Sort()
,即使您使用 PLC 项目,也只需确保添加以下内容:
using System.Collections;
using System.Collections.Generic;