C#
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ConsoleApplication1
{
class MyObj
{
public string Name { get; set; }
public int Age { get; set; }
public override bool Equals(Object obj)
{
MyObj obj2 = obj as MyObj;
return (Name.CompareTo(obj2.Name) == 0 && Age == obj2.Age);
}
public override int GetHashCode()
{
return Name.Length * 10;
}
}
class Program
{
static void Main(string[] args)
{
HashSet<MyObj> myHashSet = new HashSet<MyObj>();
// add item
MyObj myObj1 = new MyObj() { Name = "Вася", Age = 45 };
myHashSet.Add(myObj1);
// add item
MyObj myObj2 = new MyObj() { Name = "Евгений", Age = 36 };
myHashSet.Add(myObj2);
// add item
MyObj myKey3 = new MyObj() { Name = "Петя", Age = 45 };
myHashSet.Add(myKey3);
MyObj myFind;
// find 1
myFind = new MyObj() { Name = "Вася", Age = 45 };
if (myHashSet.Contains(myFind))
{
Console.WriteLine("{0} {1}", myFind.Name, myFind.Age);
// на экране увидим
// Вася 45
}
// find 2
myFind = new MyObj() { Name = "Петя", Age = 45 };
if (myHashSet.Contains(myFind))
{
Console.WriteLine("{0} {1}", myFind.Name, myFind.Age);
// на экране увидим
// Петя 45
}
}
}
}