ich nicht in der Lage bin, die Duplikate aus der Sammlung zu entfernen, habe ich noch IEqualityComparer für die Klasse Mitarbeiter implementiert i immer bin nicht die AusgabeWie Duplikate aus der Sammlung entfernen IEqualityComparer, LinQ Distinct
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);
}
}
Die Folgenden wird die Employee-Klasse Umsetzung, hier implementiert i 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
}
Can u erklären Sie bitte die oben ein i GroupBy verstehen, aber was Select ist (g => g.First() – Gun
Der GroupBy Operation erhalten Sie eine IEnumerable von [IGrouping] (http://msdn.microsoft.com/en-us/library/bb344977.aspx) Elemente (die auch IEnumerables sind.) Im Falle Ihres Beispiels gibt es zwei Elemente im äußeren IEnumerable: ein IGrouping mit zwei Einträgen für jeden "abc", "def"; ein weiteres IGrouping mit einem Eintrag für "lmn", "def". Der Operator First() nimmt das erste Element aus den inneren IGrouping IEnumerables. – avanek
für Logik mit mehreren Eigenschaften, die Sie gruppieren müssen auf allen Eigenschaften, die langsamer als der xor-Vergleich laufen werden –