gpt4 book ai didi

c# - 内部元素数量不变的 LINQ.SelectMany 的替代品

转载 作者:太空狗 更新时间:2023-10-30 00:03:15 25 4
gpt4 key购买 nike

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

我有一个 ListPair对象。

A Pair定义为

public class Pair
{
public int IDA;
public int IDB;
public double Stability;
}

我想提取 List<Pair> 中包含的所有不同 ID(整数)的列表.

我正在使用

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();

有没有更好的方法?如果不是,您更喜欢哪个?

最佳答案

您可以使用 Union() 在分别选择 A 和 B 之后得到它们。

var pIndices = pairs.Select(p => p.IDA).Union(pairs.Select(p => p.IDB));

关于c# - 内部元素数量不变的 LINQ.SelectMany 的替代品,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13746156/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com