【发布时间】:2013-01-16 17:03:47
【问题描述】:
我还有一个问题要问你。
我必须合并 2 个列表,不包括重复项。
这是我的代码:
private List<BudgetCommessa> UnisciListeSenzaDuplicati(List<BudgetCommessa> p_listBudgetCommessaEsistente, List<BudgetCommessa> listBudgetCommessaDaAggiungere)
{
//restituisco lista verificata senza doppioni
//List<BudgetCommessa> listaUnita = new List<BudgetCommessa>();
List<BudgetCommessa> listaUnita =
p_listBudgetCommessaEsistente.Concat(listBudgetCommessaDaAggiungere.Except(p_listBudgetCommessaEsistente)).ToList();
/*p_listBudgetCommessaEsistente.Union(listBudgetCommessaDaAggiungere).ToList();*/
return listaUnita;
}
我也试过了:
List<BudgetCommessa> listaUnita =
p_listBudgetCommessaEsistente.Union(listBudgetCommessaDaAggiungere)
.Distinct().ToList();
和:
List<BudgetCommessa> listaUnita =
p_listBudgetCommessaEsistente.Union(listBudgetCommessaDaAggiungere).ToList();
(假设 Union() 方法已经排除了重复行)
【问题讨论】:
-
Union() 有什么问题?
-
BudgetCommessa是否正确实现等于?如果没有,那就有问题了。 -
你展示了你尝试过的东西,但它奏效了吗?如果没有,是什么没有按预期工作?
-
你是如何定义重复的?相同的对象引用,还是相同的成员值?
-
Union确实删除了重复项。在它之后调用Distinct是没有意义的。