合并2列表,重复除外

时间:2013-01-16 17:03:47

标签: c# asp.net linq list

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

1 个答案:

答案 0 :(得分:-1)

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