LINQ.SelectMany的替代品,具有恒定数量的内部元素

Rot*_*tem 4 c# linq

我试图确定是否有更好的方法来执行以下查询:

我有一个ListPair对象.

A Pair定义为

public class Pair
{
    public int IDA;
    public int IDB;
    public double Stability;
}
Run Code Online (Sandbox Code Playgroud)

我想提取一个包含在中的所有不同ID(int)的列表List<Pair>.

我目前正在使用

var pIndices = pairs.SelectMany(p => new List<int>() { p.IDA, p.IDB }).Distinct().ToList();
Run Code Online (Sandbox Code Playgroud)

哪个有效,但对我来说似乎不直观,new List<int>只能让它变得扁平化SelectMany.

这是另一种我认为至少可以说不优雅的选择:

var pIndices = pairs.Select(p => p.IDA).ToList();
pIndices.AddRange(pairs.Select((p => p.IDB).ToList());
pIndices = pIndices.Distinct().ToList();
Run Code Online (Sandbox Code Playgroud)

有没有更好的办法?如果没有,你更喜欢哪一个?

Jon*_*n B 7

Union()在单独选择A和B后,您可以使用它们来获得它们.

var pIndices = pairs.Select(p => p.IDA).Union(pairs.Select(p => p.IDB));
Run Code Online (Sandbox Code Playgroud)