我有 3 个来自网络服务的数组...
Countries : Consists of Key - Value
Regions : Consists of Id - Name - CountryCode(fk: countries)
Areas : Consists of Id - Name - CountryCode - RegionID(fk: regions)
(fk 只是显示它的信息位,外键,将其与前一个数组关联)
我一直不知道最好的方法(最优化的)是将它们链接在一起,LINQ Joining 看起来很头痛,而且我不确定 HashSets。
有什么想法吗?
*** 附加;* 这将作为应用程序存储在应用程序状态中,因为它需要每天刷新一次(在我看来,每天简单地刷新应用程序一次比存储在应用程序中更快)数据库并根据日期戳进行更新。
最佳答案
我很好奇为什么你说 LINQ Joining 看起来很令人头疼:这正是 LINQ to Objects 的用途(查询内存中的对象并提供诸如这些对象之间的联接之类的服务)。
LINQ 的一个潜在缺点是性能开销,但说实话,这对我来说还没有成为一个主要问题。
语法很简单 from obj1 in source1 join obj2 in source2 on <conditional> select {obj1.prop, obj2.prop}
这很大程度上反射(reflect)了 SQL,这正是其意图。
(使用您的示例:
from a in Areas
join r in Regions
on a.RegionID equals r.Id
join c in Countries
on r.CountryCode equals c.Key
select new {c.Value, r.Name, a.Name, a.Id };
)
关于c# - 在 C# ASP.net 中链接多个数组的最佳方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1126057/