0

我还有一个问题要问你。
我必须合并 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() 方法已经排除了重复行)

4

1 回答 1

-1

您在列表中撅嘴的类必须覆盖 Equals 和 GetHashCode。我认为实现 IEquatable 或 IEqualityComparer 也可能有效。

于 2013-01-16T17:39:59.377 回答