gpt4 book ai didi

c# - 我可以使用 C# 集合来保存具有自引用关系的类实例吗?

转载 作者:太空宇宙 更新时间:2023-11-03 11:53:10 24 4
gpt4 key购买 nike

我需要在内存中建立一个网络文件集合的模型,但是它们之间的关系。即文件 A(例如 html)可能具有指向文件 B(例如 css)和文件 C(例如 javascript)的链接。文件 D 也可能需要文件 B。如果我想删除文件 A,我需要确保它使用的任何文件(例如文件 B)未被另一个文件(例如文件 D)使用。也许是这样的:

  List<WebFile> list_of_webfiles

public class WebFile
- string url
- bool parentFile

public class FileRelationship
- private WebFile parentWebFile;
- private WebFile childWebFile;

问题 - 在 C# 中对此建模的最佳方法是什么?(例如,哪种集合类型以及如何建模)

注意 - 它必须在内存中建模(没有数据库),我也需要能够序列化为 XML 才能保存。我的意思的一个例子是看起来像这样的东西......

        XmlSerializer serializer = new XmlSerializer(typeof(List<WebFile>));
TextWriter textWriter = new StreamWriter(CONFIG_FILE_PATH);
serializer.Serialize(textWriter, list_of_webfiles);
textWriter.Close();

谢谢

最佳答案

这似乎暗示了您可能拥有的分层“树”关系

Class WebFile:
- URL : string
- Parent : WebFile
- Children : WebFile[] (could be a list depending on the need)

然后在某个地方你有一个

List<WebFile> webFiles;

这种方法可以很容易地遍历网络文件树并找到相关文件,但很难列出所有文件本身。

或者,您可以单独存储文件列表和关系

Class WebFile
- URL : string

Class WebFileRelationship
- Parent : WebFile
- Child : WebFile

你有2个容器

List<WebFile> webFiles;
List<WebFileRelationship> relationships;

这种方法可以很容易地列出所有关系或所有文件,但很难确定各个关系。

这完全取决于您的应用程序,您是否需要有关单个文件或关系的更多信息?

关于c# - 我可以使用 C# 集合来保存具有自引用关系的类实例吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1523756/

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