class Program
{
static void Main(string[] args)
{
AnimalA zaa = new AnimalA("zhangsan", 1);
AnimalA lia = new AnimalA("zhangsan", 1);
Console.WriteLine($" za.Equals(li):{ zaa.Equals(lia)}");
Console.WriteLine("IEquatable<T>----------");
Animal za = new Animal("zhangsan", 1);
Animal li = new Animal("lisi", 1);
Console.WriteLine($" za.Equals(li):{ za.Equals(li)}");
}
}
class Animal:IEquatable<Animal>
{
public string Name { get; set; }
public int Age { get; set; }
public Animal(string name,int age)
{
Name = name;
Age = age;
}
public bool Equals(Animal other)
{
return this.Age == other.Age;
}
}
class AnimalA
{
public string Name { get; set; }
public int Age { get; set; }
public AnimalA(string name, int age)
{
Name = name;
Age = age;
}
}

class Program
{
static void Main(string[] args)
{
OneClass oneClass = new OneClass();
foreach (Student item in oneClass)
{
item.Description();
}
}
}
class OneClass:IEnumerable<Student>
{
List<Student> students;
public OneClass()
{
students = new List<Student>()
{
new Student("zhangsan",'男'),
new Student("lisi",'女'),
new Student("wangwu",'男'),
new Student("zhaoliu",'女'),
new Student("sunqi",'男'),
new Student("laoba",'女')
};
}
public IEnumerator<Student> GetEnumerator()
{
return students.GetEnumerator();
}
IEnumerator IEnumerable.GetEnumerator()
{
throw new NotImplementedException();
}
}
class Student
{
public string Name { get; set; }
public char Gender { get; set; }
private byte Age;
public Student(string name,char gender)
{
Name = name;
Gender = gender;
Age = (byte)new Random().Next(1, 20);
}
public void Description()
{
Console.WriteLine($"I'm {Name}.{Gender} {Age} years old");
}
}
static void Main(string[] args)
{
IEnumerable<int> ies;
Console.WriteLine("\n----------List<int> ------------");
ies = GetCollection(1);
foreach (var item in ies)
Console.Write(item+" ");
Console.WriteLine("\n----------Queue<int> ------------");
ies = GetCollection(2);
foreach (var item in ies)
Console.Write(item + " ");
Console.WriteLine("\n----------int[] ------------");
ies = GetCollection(3);
foreach (var item in ies)
Console.Write(item + " ");
}
static IEnumerable<int> GetCollection(int option)
{
List<int> ls = new List<int> { 1, 2, 3 };
Queue<int> qs = new Queue<int>();
qs.Enqueue(4);
qs.Enqueue(5);
qs.Enqueue(6);
if (option == 1)
return ls;
else if (option == 2)
return qs;
else
return new int[] { 7, 8, 9 };
}