次のクエリを実行するためのより良い方法があるかどうかを判断しようとしています:
私はList
のPair
オブジェクトを持っています。
APair
は次のように定義されます。
public class Pair
{
public int IDA;
public int IDB;
public double Stability;
}
に含まれるすべての個別の ID (int) のリストを抽出したいと思いますList<Pair>
。
私は現在使用しています
var pIndices = pairs.SelectMany(p => new List<int>() { p.IDA, p.IDB }).Distinct().ToList();
new List<int>
これは機能しますが、によって平坦化するためだけにを作成するのは直感的ではないようですSelectMany
。
これは、控えめに言ってもエレガントではない別のオプションです。
var pIndices = pairs.Select(p => p.IDA).ToList();
pIndices.AddRange(pairs.Select((p => p.IDB).ToList());
pIndices = pIndices.Distinct().ToList();
より良い方法はありますか?そうでない場合は、どちらを好みますか?