> For the complete documentation index, see [llms.txt](https://chaoses-ib.gitbook.io/directory-opus/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://chaoses-ib.gitbook.io/directory-opus/guan-fang-shou-ce/readme.zh-10/readme.zh-3/readme.zh/stringset.zh.md).

# StringSet

**StringSet** 对象是一个存储一个或多个唯一字符串的容器。它类似于数组或向量（例如 [**Vector**](/directory-opus/guan-fang-shou-ce/readme.zh-10/readme.zh-3/readme.zh/vector.zh.md)），但它使用字典系统来定位字符串，而不是数字索引。因此，你可以比线性搜索 [**Vector**](/directory-opus/guan-fang-shou-ce/readme.zh-10/readme.zh-3/readme.zh/vector.zh.md) 更快地查找字符串。

你可以使用 [**DOpusFactory**](/directory-opus/guan-fang-shou-ce/readme.zh-10/readme.zh-3/readme.zh/dopusfactory.zh.md) 对象创建一个新的 **StringSet**。**StringSet** 可以是区分大小写的（"cat" 和 "CAT" 将被视为两个不同的字符串），也可以是不区分大小写的。

| 属性名称   | 返回类型   | 描述                                               |
| ------ | ------ | ------------------------------------------------ |
| count  | *int*  | 返回 **StringSet** 当前持有的元素数量。                      |
| empty  | *bool* | 如果 **StringSet** 为空，则返回 **True**，否则返回 **False**。 |
| length | *int*  | **count** 的同义词。                                  |
| size   | *int*  | **count** 的同义词。                                  |

| 方法名称   | **参数**               | 返回类型   | 描述                                                                                                                                                             |
| ------ | -------------------- | ------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| assign | <**StringSet**:from> | *none* | 将另一个 **StringSet** 的内容复制到当前 **StringSet** 中。你也可以传递一个字符串数组或 [**Vector**](/directory-opus/guan-fang-shou-ce/readme.zh-10/readme.zh-3/readme.zh/vector.zh.md) 对象。 |
| clear  | *none*               | *none* | 清除 **StringSet** 的内容。                                                                                                                                          |
| erase  | \<string>            | *none* | 如果字符串存在于集合中，则擦除它。                                                                                                                                              |
| exists | \<string>            | *bool* | 如果指定的字符串存在于集合中，则返回 **True**。                                                                                                                                   |
| insert | \<string>            | *bool* | 如果字符串不存在于集合中，则将其插入集合中。如果成功，则返回 **True**。                                                                                                                       |
| merge  | <**StringSet**:from> | *none* | 将另一个 **StringSet** 的内容与当前 **StringSet** 合并。                                                                                                                    |
