【问题标题】:Insert number 1-2 but not 2-1插入数字 1-2 但不是 2-1
【发布时间】:2017-10-22 10:29:12
【问题描述】:

我有 (1,2,3),我想在我的表中插入:

1-2
2-3

但我想排除 2-13-2

有什么帮助吗?

【问题讨论】:

  • 为什么要插入1-2和2-3?是因为它们相邻吗?如果列表是 (1,2,4,5,8) - 那你想插入什么?
  • 坦克的 Dimitri.. 非常好.. br Max

标签: c# sql linq


【解决方案1】:

首先获取项目的笛卡尔积。然后排除差异大于 1 且第一个数字 >= 第二个数字的那些。像这样:

List<int> list = new List<int>(){1, 2, 3};

var result = from n1 in list
             from n2 in list
             select new {n1, n2};

result = result.Where(n=> (n.n1 < n.n2) && (n.n2 - n.n1 == 1)).ToList();

这会给你你想要的:

Results

【讨论】:

  • 对于一个未充分说明的问题,这可能是正确的,也可能是错误的答案。它假设 (1, 2, 4) 应该只导致 (1, 2) 记录,但很可能 (2, 4) 也需要。
  • @hvd 是的,问题未指定,但他确定它们是三个数字1,2,3,结果应该只有1,22,3。这就是代码给出的,我正在等待操作添加更多信息。
  • github.com/morelinq/MoreLINQ#lead 可能是一种具有更好 O 表示法性能的方法(基本上是查看条目对,而不是 每个 组合)。
猜你喜欢
  • 1970-01-01
  • 2018-07-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-06-05
  • 1970-01-01
  • 2015-09-02
  • 2013-01-09
相关资源
最近更新 更多