C#多对多关系
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了C#多对多关系,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1223字,纯文字阅读大概需要2分钟。
内容图文
![C#多对多关系](/upload/InfoBanner/zyjiaocheng/782/08fddf0dda7749c8bd2905b140c8b213.jpg)
所以,我需要一些方法来实现C#中的无向网络(我认为这是正确的术语)
假设我有以下数据:
Foo1 <-> Bar1
Foo2 <-> Bar1
Foo2 <-> Bar2
Foo2 <-> Bar3
Foo3 <-> Bar2
Foo3 <-> Bar3
我如何实现可以支持这一点的东西?
一种方法是创建一个包含Foo和Bar的类,对于我的例子,我有6个这样的,每个可能的组合,但是这会使数据翻倍.
有了这些数据,我需要能够根据它指向的Bar的数量来执行Foo1的计算,以及有多少Foo的Bar的点等等.
我不是在寻找答案,我宁愿在如何实现这个方面做一些指导,甚至可能是一些链接.
解决方法:
你基本上概述了一个图形模型,传统上被认为是“节点”和“边缘”.但证券/贷款有效.
这类事情有两个经典的答案.
这取决于您希望能够询问数据的问题,您希望存储数据的效率以及数据的密集程度.
例如,如果证券和贷款之间可能存在30%的关系,那么密集的数据结构肯定会得到回报.只需保留一个大矩阵:X上的证券.Y(X,Y)上的贷款意味着贷款存在.
如果集合不是很密集,那么您就开始使用“稀疏边缘数据结构”.根据您的应用程序,您可能:
>任何S对象都有一个Ls的列表.
{S-> L,L,L; S-→1; S-> L,L,L}.很容易找到S的邻居,但很难找到L’s
> S对象具有Ls的列表,Ls具有S的列表:(S-> L,L,L和L-> S,S,S).使用更多空间,但为您提供双向查询.
>存储一组刚刚(S,L)对.非常糟糕,除非你最需要问的是“这是否与L相关?”
>存储S,L和L,S的列表并以某种方式对其进行索引.这就是我们所说的“让您的数据库完成工作”.
另见Data structure for relationships
内容总结
以上是互联网集市为您收集整理的C#多对多关系全部内容,希望文章能够帮你解决C#多对多关系所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。