-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathCompareTwoListObjects.cs
95 lines (88 loc) · 3 KB
/
CompareTwoListObjects.cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
using System;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace StackOverflow {
class CompareTwoListObjects {
public static void MainCompareTwoListObjects () {
List<DataDictionary> ColumnsDataDict = new List<DataDictionary> () {
new DataDictionary () {
TableName = "Table1",
Description = "Abcd"
},
new DataDictionary () {
TableName = "Table2",
Description = "Abcd"
},
new DataDictionary () {
TableName = "Table3",
Description = "Abcd"
},
};
List<DataDictionary> ColumnsWizard = new List<DataDictionary> () {
new DataDictionary () {
TableName = "Table3",
Description = "Abcd"
},
new DataDictionary () {
TableName = "Table4",
Description = "Abcd"
},
new DataDictionary () {
TableName = "Table5",
Description = "Abcd"
},
};
//var newlist = ColumnsWizard.Except (ColumnsDataDict); // returns right join
//string tableName = "Table3";
//var left = ColumnsDataDict.Where (x => x.TableName != tableName).ToList ();
//var right = ColumnsWizard.Where (x => x.TableName != tableName).ToList ();
//var unmatchedObjects = left.Concat (right);
//foreach (DataDictionary item in unmatchedObjects) {
// Console.WriteLine (item.TableName);
//}
List<DataDictionary> duplicatesRemovedLists = ColumnsDataDict.Concat (ColumnsWizard).ToList ();
//duplicatesRemovedLists = duplicatesRemovedLists. (new DistinctComparer ()).ToList ();
foreach (DataDictionary item in duplicatesRemovedLists) {
Console.WriteLine (item.TableName);
}
foreach (var cddProp in ColumnsDataDict) {
foreach (var cwProp in ColumnsWizard) {
if ((cddProp.TableName == cwProp.TableName)) {
duplicatesRemovedLists.Remove (cddProp);
duplicatesRemovedLists.Remove (cwProp);
}
}
}
foreach (DataDictionary item in duplicatesRemovedLists) Console.WriteLine (item.TableName);
}
public class DistinctComparer: IEqualityComparer<DataDictionary> {
public bool Equals (DataDictionary x, DataDictionary y) => x.TableName == y.TableName;
public int GetHashCode (DataDictionary obj) => (null == obj) ? 0: 1;
}
}
class DataDictionary {
public string TableName {
get;
set;
}
public string Description {
get;
set;
}
public string TableID {
get;
set;
}
public string ColumnDesc {
get;
set;
}
public string ColumnName {
get;
set;
}
}
}