除了方法,只为一个实例提供了错误的答案

nnm*_*mss 0 c# linq

我通过这个命令创建一个列表

var terminalList = sourceLists.Where(t => t.TagNo == tagList)
                              .Where(t => t.FromTerminal.Length > 0)
                              .Select(t => parseTerminal(t.FromTerminal))
                              .OrderBy(t => t).ToList();
Run Code Online (Sandbox Code Playgroud)

它适用于Tagno除了创建这样的列表之外的每一个

terminalList={33,35}
Run Code Online (Sandbox Code Playgroud)

当我使用此命令时

var result = Enumerable.Range(terminalList.Min(), terminalList.Max())
                       .Except(terminalList)
                       .ToList();
Run Code Online (Sandbox Code Playgroud)

我检查了一下.terminalList.Min()将是33并且terminalList.Max()将是35.并且在这种情况下terminalList有2个项目.

我得到了这个答案:

result = {34,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67}
Run Code Online (Sandbox Code Playgroud)

这是错误的正确答案{34}.

我该如何追踪问题?

Gur*_*ron 7

public static IEnumerable<int> Range(
    int start,
    int count
)
Run Code Online (Sandbox Code Playgroud)

哪里

start - 序列中第一个整数的值. count - 要生成的连续整数的数量.

所以Enumerable.Range(33,35)从33开始生成35个元素,然后删除33和35并获得显示的结果