【发布时间】:2009-03-15 23:01:57
【问题描述】:
好的,知道我来自 Cold Fusion,所以我倾向于以 CF 的方式思考问题,而 C# 和 CF 在一般方法中是不同的。
所以问题是:我想通过 LINQ 从 SQL 数据库中提取数据的“表”(我就是这么想的),然后我想在内存中对其进行一些计算。这个“表”包含 6 或 7 个不同类型的值。
现在,我的解决方案是使用自定义类型的通用列表进行 LINQ 查询。所以我的例子是 RelevanceTable。我提取了一些数据,我想对数据进行一些评估,这些数据首先以 .Contains 开头。看来 .Contains 想要对整个列表采取行动,或者什么都不做。因此,如果我有List<string>,我可以使用它,但如果我有List<ReferenceTableEntry>,其中 ReferenceTableEntry 是我的自定义类型,我需要重写 IEquatable 并告诉编译器“Equals”到底是什么意思。
虽然这似乎不无道理,但要解决一个简单的问题似乎还有很长的路要走,所以我暗自怀疑我的方法从一开始就有缺陷。
如果我想使用 LINQ 和 .Contains,重写接口是唯一的方法吗?似乎只有一种方法可以说明要在哪个字段上进行操作。除了 LIST 之外,是否还有另一种可能具有这种能力的集合类型。为此,我已经开始大量使用 List,虽然我看了又看,但还是看到了一些其他但不一定更好的方法。
我不是在寻找性能或紧凑性或可读性的一些优点,只是想知道我是否在六角螺丝中使用十字螺丝刀。如果我的方法是“体面”的方法,但不是最好的,我当然想知道更好的方法,但只要知道它在球场上就会给我一点“是的!我不傻!”在切换到另一种方法之前,我至少会完成我正在做的事情。
希望我解释得足够好。谢谢你的帮助。
【问题讨论】:
-
高级初学者是在中级之前还是之后? =p
标签: c# linq-to-sql collections