Beispiel #1
0
        public CommonHeading Adapt(string[] newheading)
        {
            var fields = newheading.Select(name => {
                var field = Fields.FirstOrDefault(f => f.Name == name);
                return((field.CType == CommonType.None) ? new CommonField(name, CommonType.None) : field);
            });

            return(CommonHeading.Create(fields));
        }
Beispiel #2
0
 public static CommonTable Create(string name, CommonField[] fields)
 {
     return(Create(name, CommonHeading.Create(fields)));
 }
Beispiel #3
0
 // create a heading minus one field
 public CommonHeading Remove(CommonField field)
 {
     return(CommonHeading.Create(Fields.Where(f => f.Name != field.Name)));
 }
Beispiel #4
0
 public CommonHeading Append(IEnumerable <CommonField> fields)
 {
     return(CommonHeading.Create(Fields.Concat(fields)));
 }
Beispiel #5
0
 // create a heading plus one field
 public CommonHeading Append(CommonField field)
 {
     return(CommonHeading.Create(Fields.Append(field)));
 }
Beispiel #6
0
        // create a heading as this minus other
        public CommonHeading Minus(CommonHeading other)
        {
            var fields = Fields.Where(f => !other.Fields.Any(o => f.Name == o.Name));

            return(CommonHeading.Create(fields));
        }
Beispiel #7
0
        // create a heading as the intersection of this and other
        public CommonHeading Intersect(CommonHeading other)
        {
            var fields = Fields.Where(f => other.Fields.Any(o => f.Name == o.Name));

            return(CommonHeading.Create(fields));
        }
Beispiel #8
0
        // create a heading as the union of this and other
        public CommonHeading Union(CommonHeading other)
        {
            var fields = Fields.Concat(other.Fields.Where(f => !Fields.Any(o => f.Name == o.Name)));

            return(CommonHeading.Create(fields));
        }
Beispiel #9
0
        // rename a field from old to new
        public CommonHeading Rename(CommonField field1, CommonField field2)
        {
            var fields = Fields.Select(f => (f.Name == field1.Name) ? new CommonField(field2.Name, f.CType) : f);

            return(CommonHeading.Create(fields));
        }