我有一個任務,我必須加入兩個相同類型的列表(Customer)。他們有類似的條目,我必須避免重複。使用linq查詢加入兩個列表 - C#
這是我客戶類:
class Customer
{
private String _fName, _lName;
private int _age, _cusIndex;
private float _expenses;
public Customer(String fName, String lName, int age, float expenses, int cusIndex)
{
this._fName = fName;
this._lName = lName;
this._age = age;
this._expenses = expenses;
this._cusIndex = cusIndex;
}
}
所以我有一個名爲customers1
和秒。我需要加入這兩個不使用集合方法(如customer1.Union(customer2).ToList();
但使用LINQ查詢
這裏的Linq查詢我寫道:
var joined = (from c1 in customers1
join c2 in customers2
on c1.CusIndex equals c2.CusIndex
select new {c1, c2});
但是這給了我是誰出現在雙方的成員但是我需要所有,沒有重複,有沒有解決方案?
1.覆蓋[Equals](https://msdn.microsoft.com/library/ms173147.aspx)和[GetHashCode](http://blogs.msdn.com/b/ericlippert/archive/2011/02 /28/guidelines-and-rules-for-gethashcode.aspx)在你的Customer類中(以反映兩個客戶被認爲是平等的,如果他們的'CusIndex'相等的話)。 2.'var joined = customers1.Concat(customers2).Distinct();' – Corak
它看起來好像沒有'Union'方法的查詢等價物。不使用'Union'方法的原因是什麼? –
@Corak是的。我已經做到了。但問題是,此查詢返回兩個列表中的客戶。但我需要每個人 –