gpt4 book ai didi

c# - Linq 与数组相交

转载 作者:太空狗 更新时间:2023-10-30 00:55:56 26 4
gpt4 key购买 nike

我从数据库中获取了一个表标签。

表格有 ID 和 TagName 列

我正在做这样的事情来获取字符串列表:

var taglist = Model.Tags.Select(x => x.TagName.ToLower()).ToArray();

然后我将与另一个字符串数组进行比较,以获取同时出现在两者中的字符串:

var intersectList = tagList.Intersect(anotherList);

我有我的列表,但现在我还想要保留在与 tagList 相对应的相交列表中的每个项目的 ID。 (可以只是一个 int 数组)

谁能提供一个好的方法来做到这一点?

最佳答案

不要使用相交,它只适用于相同类型的集合。您可以进行简单的连接或其他形式的过滤。最简单的方法是将字符串列表放入 HashSet 并按该集合中包含 TagName 的标签进行过滤。这样一来,您的标签就不会被投影,因此它们会保留自己的 ID 和其他属性。

var stringSet = anotherList.ToHashSet(StringComparer.OrdinalIgnoreCase);
var tagList = Model.Tags.Where(t => stringSet.Contains(t.TagName)).ToList();

并将它们放入列表中。不要将它们放入数组中,除非您特别需要一个数组(用于需要数组的方法)。

关于c# - Linq 与数组相交,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8963702/

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