我有一个Column
具有Index
type 属性的类int
。
如果我有一组Column
对象,我正在寻找一种方法来测试它们的索引是否连续。连续是指索引彼此相邻,因此如果按值排序,它们与下一个和上一个索引的距离为 1。
可以有任意数量的column
对象。
因此,例如:
10,11,12,13 => 真
3,5,7 => 假
1,2,4 => 假
编辑
虽然这些示例是有序索引,但我想要一个采用无序索引集的解决方案。
我确信可能有一种巧妙的 Linq 方法可以解决这个问题,但我看不到它。
用代码表示:
public class Column
{
public int Index { get; set; }
}
class Program
{
static void Main(string[] args)
{
// Example set of columns 1
List<Column> columns1 = new List<Column>()
{
new Column(){Index = 10},
new Column(){Index = 11},
new Column(){Index = 12},
new Column(){Index = 13},
};
// Example set of columns 2
List<Column> columns2 = new List<Column>()
{
new Column(){Index = 3},
new Column(){Index = 5},
new Column(){Index = 7},
};
// Example set of columns 3
List<Column> columns3 = new List<Column>()
{
new Column(){Index = 1},
new Column(){Index = 2},
new Column(){Index = 4},
};
var result1 = IndicesAreContiguos(columns1); // => true
var result2 = IndicesAreContiguos(columns2); // => false
var result3 = IndicesAreContiguos(columns3); // => false
}
public bool IndicesAreContiguos(IEnumerable<Column> columns)
{
// ....???
}
}