2つの配列(通常はキー&の値)を最適な方法でソートしようとしています。標準のC#では、Array.Sort(Array、Array)メソッドはうまく機能しますが、そのようなメソッドはありません。PCLのArray.Sort(array、array)に相当するもの
はより明確に、このコードは、クロスプラットフォームのPCLビルド内の標準的なC#で可能ですが、ありません。
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;
}
EDIT:一部の人々は、私は関数を参照してください必要があることを言うが、私はこの使用しています:
#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
をそして私が見るすべては、あなたがArray.Sort()
を使用することができます
plcを使用しても、Array.Sort(keys、values);を使用できる必要があります。システムネームスペースを使用しています –
.NET Prtableプロファイルを調べましたか?おそらくあなたが実際に必要とするもののために余りにも制限されていて、あなたのPCLからそのメソッドを削除するかもしれません –
可能であれば、私は新しい開発のためにPCLをしないことをお勧めします。 [PCLとの互換性に必要なものと一致するようにプロファイルをターゲットにする] .NET Coreライブラリに切り替える(http://blog.stephencleary.com/2012/05/framework-profiles-in-net.html) –