मैं संग्रह से डुप्लिकेट निकालने में असमर्थ हूँ, मैं वर्ग कर्मचारी के लिए IEqualityComparer को लागू किया है अभी भी मैं नहीं उत्पादनकैसे IEqualityComparer का उपयोग कर संग्रह से डुप्लिकेट को निकालने के, LINQ अलग
static void Main(string[] args)
{
List<Employe> Employeecollection = new List<Employe>();
Employeecollection.Add(new Employe("abc","def"));
Employeecollection.Add(new Employe("lmn","def"));
Employeecollection.Add(new Employe("abc", "def"));
IEnumerable<Employe> coll = Employeecollection.Distinct(new Employe());
foreach (Employe item in coll)
{
Console.WriteLine(item.fName + " " + item.lName);
}
}
नीचे हो रही है कर्मचारी वर्ग कार्यान्वयन, यहाँ मैं IEqualityComparer
class Employe : IEqualityComparer<Employe>
{
public string fName { get; set; }
public string lName { get; set; }
public Employe()
{
}
public Employe(string firstName, string LastName)
{
this.fName = firstName;
this.lName = LastName;
}
#region IEqualityComparer<pcf> Members
public bool Equals(Employe x, Employe y)
{
if (x.fName == y.fName && x.lName == y.lName)
{
return true;
}
return false;
}
public int GetHashCode(Employe obj)
{
return obj.GetHashCode();
}
#endregion
}
यू के ऊपर एक मैं GroupBy को समझने समझाने कृपया लेकिन क्या करें है (छ => g.First() – Gun
GroupBy आपरेशन आप वापस आ जाएगी [IGrouping] की एक IEnumerable (http://msdn.microsoft.com/en-us/library/bb344977.aspx) आइटम (जो IENumerables भी हैं)। आपके उदाहरण के मामले में, बाहरी IENumerable में दो आइटम होंगे: प्रत्येक IGrouping प्रत्येक के लिए दो प्रविष्टियों के साथ "एबीसी", "डीफ़"; "एलएमएन", "डीफ़" के लिए एक प्रविष्टि के साथ एक और IGrouping। पहला() ऑपरेटर आंतरिक IGrouping IENumerables से पहला आइटम लेगा। – avanek
एकाधिक गुणों के साथ तर्क के लिए, आपको समूह करना होगा सभी गुणों पर जो xor तुलना की तुलना में धीमी गति से चलेंगे। –