本文整理汇总了C#中Row.GetSchema方法的典型用法代码示例。如果您正苦于以下问题:C# Row.GetSchema方法的具体用法?C# Row.GetSchema怎么用?C# Row.GetSchema使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Row
的用法示例。
在下文中一共展示了Row.GetSchema方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: IsRowEqual
/// <summary>
/// Verifies that the two Rows are equal.
/// </summary>
/// <param name="x"></param>
/// <param name="y"></param>
/// <param name="columnsComparer">Specify custom comparer for certain columns. The key of dictionary is column name, the value is comparer.</param>
/// <returns>True if two Rows are equal.</returns>
private static bool IsRowEqual(Row x, Row y, Dictionary<string, Func<object, object, bool>> columnsComparer = null)
{
if (x == null && y == null) return true;
if (x == null && y != null || x != null && y == null) return false;
foreach (var col in x.GetSchema().columns)
{
if (!y.GetSchema().columns.Any(c => c.ToString() == col.ToString())) return false;
if (col.type.columns.Any())
{
if (!IsRowEqual(x.GetAs<Row>(col.name), y.GetAs<Row>(col.name), columnsComparer)) return false;
}
else if (x.Get(col.name) == null && y.Get(col.name) != null || x.Get(col.name) != null && y.Get(col.name) == null) return false;
else if (x.Get(col.name) != null && y.Get(col.name) != null)
{
Func<object, object, bool> colComparer;
if (columnsComparer != null && columnsComparer.TryGetValue(col.name, out colComparer))
{
if (!colComparer(x.Get(col.name), y.Get(col.name))) return false;
}
else
{
if (x.Get(col.name).ToString() != y.Get(col.name).ToString()) return false;
}
}
}
return true;
}