【发布时间】:2017-05-10 04:08:54
【问题描述】:
我有一个List<List<double>> items,其中每个内部列表都包含一对双精度,其中[0] == PRICE 和[1] == QTY。
我想检查 (TRUE/FALSE) 列表是否包含具有特定 PRICE 值的行。除了使用foreach(可能使用LINQ)循环整个列表之外,还有更快的方法吗?还是只检查第一个值的特殊类型的“.Contains()”方法?
"items": [
[
241.947,
155.91626
],
[
241,
981.1255
],
[
240.744,
21.1255
],
],
【问题讨论】:
-
你能提供关于这个的示例 json
-
无论你使用什么方法,你都必须遍历列表。如果您想要一种快速的方法,请使用不同的数据结构,也许是哈希表。
-
为什么不使用 List 来表示这对双打,为什么不直接使用包含两个属性(价格和数量)的结构或类。还是我误解了这个问题。
-
LINQ 并不神奇——如果您有一个无序的元素集合并且您需要查看某个元素是否为真,您将迭代该列表。您可以构建基于 非 列表的数据结构以实现更快的搜索,但如果您打算对数据做的唯一事情是搜索,那么您将花费更多时间在构建结构以实现更快的搜索和搜索而不是单独的线性搜索。