gpt4 book ai didi

c# - 构建可通过标签检索的对象集合

转载 作者:行者123 更新时间:2023-11-30 21:34:13 25 4
gpt4 key购买 nike

我需要一个可以存储和检索具有多个潜在共享标签的对象的集合。我需要能够存储具有多个标签的一个对象,并检索具有一个或多个标签的所有对象。

我的第一个想法是让集合存储一个对象数组,以及一个 Dictionary<string, Hashset<int>>其中键是标签,值是标签适用的索引。

  • 对于多个标签,获取索引集合的交集
  • 要从对象中删除标签,请从集合中删除该索引

但是,如果从集合中删除一个对象,则该点之后的所有索引现在都不正确。

我的方向是否正确?是否有我不知道的现有实现,或者是否有一种标准的集合方法可以帮助解决这个问题?

最佳答案

给定

public class Something
{
public HashSet<string> Tags { get; set; }
}

用法

var list = new List<Something>
{
new Something()
{
Tags = new HashSet<string>() { "tag1", "tag2" }
},
new Something()
{
Tags = new HashSet<string>() { "tag3", "tag4" }
}
};

var searchList = new List<string> { "tag1", "tag4"};

var result = list.Where(x => x.Tags.Any(y => searchList.Contains(y)));

相当标准的内存方法

如果你想要更多的类型,使用枚举(如果你不需要它们是动态的)

关于c# - 构建可通过标签检索的对象集合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50505208/

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