gpt4 book ai didi

c# - 加速 LINQ 对象查询

转载 作者:行者123 更新时间:2023-11-30 20:36:15 24 4
gpt4 key购买 nike

我正在尝试加速以下 LINQ 对象查询:

var setOfCodes = codeList1
.SelectMany(q => q.Codes)
.Union(codeList2.SelectMany(q => q.Codes)
.Union(codeList3.SelectMany(q => q.Codes)
.ToList();

在哪里

codeListX is a List<Item>

public Item {
public List<int> Codes = new List<int>();
}

例子:

var codeList1 = new List<Item> {
new Item {
Codes = new List<int> {
100,
105,
110
}
},
new Item {
Codes = new List<int> {
100,
110,
115
}
},
};
var codeList2 = new List<Item> {
new Item {
Codes = new List<int> {
150,
155,
160
}
},
new Item {
Codes = new List<int> {
150,
155,
170
}
},
};

输出应该是(不关心顺序,我可以稍后排序):

100, 105, 110, 115, 150, 155, 160, 170

IE:输出一个列表,其中包含出现在 codeListX 中的所有代码。

有没有更快的方法来做到这一点?

最佳答案

你可以这样写:

var setOfCodes = new[] { codeList1, codeList2, codeList3 }
.SelectMany(x => x)
.SelectMany(x => x.Codes)
.Distinct()
.ToList();

关于c# - 加速 LINQ 对象查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37151362/

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