List <int>中的快速序列检查

时间:2019-02-04 07:31:29

标签: c# list

我正在寻找一种更快速,更准确的方法来检查序列:

List<int> sequence = new List<int> { 0, 1, 2, 3, 4, 5, 6, 7 … 41}



private bool IsSequential(List<int> sequence)
{

    int S = sequence[0];
    int T = sequence[sequence.Count- 1];

    List<int> Possible = Enumerable.Range(S, T).ToList();
    List<int> Except = sequence.Except(Possible).ToList();

    if (Except.Count == 0)
        return true;
    else
        return false;
}

如果列表相同,我的代码将返回1,我有某种计数问题?

我想知道是否有更好的方法检查整数序列:200、201、202 ...等等。

某些序列可能不正确:200、210、203、204 ...我需要确定这个问题。

谢谢

1 个答案:

答案 0 :(得分:3)

您可以尝试使用SequenceEqual进行以下操作。

  List<int> sequence = new List<int> { 0, 1, 2, 3, 4, 5, 6, 7 };
  bool isInSequence = sequence.SequenceEqual(Enumerable.Range(sequence[0], sequence.Count()));