Computer >> 컴퓨터 >  >> 프로그램 작성 >> C#

LINQ C# 프로그래밍에서 Take 및 Skip 연산자를 함께 사용하는 방법

<시간/>

Employee 클래스 e와 e1의 두 인스턴스를 만들고 있습니다. e는 toe1에 할당됩니다. 두 개체 모두 동일한 참조를 가리키고 있으므로 모든 Equals에 대해 예상대로 true 출력을 얻습니다.

두 번째 경우에는 속성 값이 동일하더라도 관찰할 수 있습니다.Equals는 false를 반환합니다. 기본적으로 인수가 다른 개체를 참조할 때.Equals는 값을 확인하지 않고 항상 false를 반환합니다.

예시 1

class Program{
   static void Main(string[] args){
      Employee e = new Employee();
      e.Name = "Test";
      e.Age = 27;
      Employee e2 = new Employee();
      e2 = e;
      var valueEqual = e.Equals(e2);
      Console.WriteLine(valueEqual);
      //2nd Case
      Employee e1 = new Employee();
      e1.Name = "Test";
      e1.Age = 27;
      var valueEqual1 = e.Equals(e1);
      Console.WriteLine(valueEqual1);
      Console.ReadLine();
   }
}
class Employee{
   public int Age { get; set; }
   public string Name { get; set; }
}

출력

True
False

예시 2

class Program{
   static void Main(string[] args){
      Employee e = new Employee();
      e.Name = "Test";
      e.Age = 27;
      Employee e2 = new Employee();
      e2 = e;
      var valueEqual = e.Equals(e2);
      Console.WriteLine(valueEqual);
      Employee e1 = new Employee();
      e1.Name = "Test";
      e1.Age = 27;
      var valueEqual1 = e.Equals(e1);
      Console.WriteLine(valueEqual1);
      Console.ReadLine();
   }
}
class Employee{
   public int Age { get; set; }
   public string Name { get; set; }
   public override bool Equals(object? obj){
      if (obj == null)
      return false;
      if (this.GetType() != obj.GetType()) return false;
      Employee p = (Employee)obj;
      return (this.Age == p.Age) && (this.Name == p.Name);
   }
   public override int GetHashCode(){
      return Age.GetHashCode() ^ Name.GetHashCode();
   }
}

출력

True
True