从SQL Server存储过程'sp_help'的结果中,我们得到一个包含几个表的DataSet。七,如果我是正确的。其中一个包含有关约束的信息。每个外键都由该表中的两个连续行记录。第一行包含约束类型,名称和其他详细信息。它后跟一个空行,除了一列'constaint_keys',它包含约束的列名引用。
其他约束类型在一行中描述。
关于如何使用Linq“扁平化”这些信息的任何想法,我们可以确定任何由两行组成的情侣实际上是由行{n,n + 1}组成
感谢您的帮助!
答案 0 :(得分:3)
将IEnumerable的元素收集两个:
data.Select((x, i) => new { Index = i, Value = x }).GroupBy(x => x.Index / 2)
答案 1 :(得分:0)
您可以使用 Enumerable.Range() 来获取您要使用的索引范围:
var unflattenedConstraints = constraintsTable.Rows;
var constraints = from index in Enumerable.Range(0, unflattenedConstraints.Count / 2)
.Select(x => x * 2)
let row1 = unflattenedConstraints[index]
let row2 = unflattenedConstraints[index + 1]
// Combine the rows