示例#1
0
 /// <summary>
 ///
 /// </summary>
 /// <param name="a"></param>
 /// <param name="b"></param>
 /// <param name="mask"></param>
 /// <returns></returns>
 public static bool EqualsWithMask(this Edge a, Edge b, TripleMask mask)
 {
     return((!mask.HasFlag(TripleMask.Subject) || a.Subject.Equals(b.Subject)) &&
            (!mask.HasFlag(TripleMask.Predicate) || a.Predicate.Equals(b.Predicate)) &&
            (!mask.HasFlag(TripleMask.Object) || a.Object.Equals(b.Object)) &&
            (!mask.HasFlag(TripleMask.Context) || a.Context.Equals(b.Context)));
 }
示例#2
0
 public static IndexKey Create(Edge triple, TripleMask index)
 {
     return(new IndexKey
            (
                index.HasFlag(IndexCoverage.Subject) ? triple.Subject : null,
                index.HasFlag(IndexCoverage.Predicate) ? triple.Predicate : null,
                index.HasFlag(IndexCoverage.Object) ? triple.Object : null,
                index.HasFlag(IndexCoverage.Context) ? triple.Context : null
            ));
 }