【发布时间】:2016-09-02 03:33:38
【问题描述】:
我有一个名为 Product 的类,它包含一些属性,如 Id(作为 Guid)和 Messages(作为 List),还有一个 Message 类,它还包含 Id 和其他属性。我在消息表中有所有消息,在产品表中有所有产品。在获得两个表的数据后,我想加入他们关于 Id 属性的信息。如果我使用下面的代码,因为它是线性搜索,那么性能很糟糕。
foreach (Product product in products)
product.Messages = messages.Where(n => n.Id == product.Id).ToList();
还有其他更快的方法吗?
谢谢
【问题讨论】:
-
加入数据库端?如果您绝对需要它在客户端工作,我会使用字典。
-
为什么不在数据库端执行连接?这将比提取所有数据并在 C# 中执行要快一个数量级。
-
如果您使用的是实体框架,那么您不应该这样做
-
顺便问下好问题,引发了很多有趣的讨论。
-
我需要在客户端拥有所有记录。所以,更喜欢在 C# 中加入他们。无论如何,ToLookup 解决了我的问题。
标签: c#