我在LINQ中相交不知何故似乎工作。我有兩張excel表格。我使用LinQToExcel獲取它並(LinQToExcel不支持VisitSubQueryExpression我不得不做一些額外的工作)。Excel數據使用LinQ相交
List<BoardSheet> sourceTest = (from t in Boards[0]
where t["Board"] == boardName
select new CircuitSet
{
ID = string.Format(t["ID"]),
Data = string.Format(t["Data"]),
CtrlType = string.Format(t["CtrlType"]),
sys = string.Format(t["sys"]),
code = string.Format(t["code"])
}
).ToList<BoardSheet>();
List<BoardSheet> targetTest = (from t in Boards[0]
where t["Board"] == boardName
select new CircuitSet
{
ID = string.Format(t["ID"]),
Data = string.Format(t["Data"]),
CtrlType = string.Format(t["CtrlType"]),
sys = string.Format(t["sys"]),
code = string.Format(t["code"])
}
).ToList<BoardSheet>();
IEnumerable<BoardSheet> board = sourceTest.Intersect(targetTest);
板的計數總是返回0.但是,當我迭代sourceTest和targetSet的字段值時,我會看到公共字段值。
您是否嘗試過實施定製的IEqualityComparer? –
Francisco
2010-07-23 16:56:57
沒有Francisco.I認爲找到常見的一組行的唯一方法是使用「相交」。 – Webbies 2010-07-23 17:25:07
在源代碼和目標代碼之間有許多共同的行。我通過分別寫入單獨的源代碼和目標代碼列表的值來檢查它。 – Webbies 2010-07-23 17:27:24