微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何在 LINQ C# 编程中同时使用 Take 和 Skip 运算符

如何在 LINQ C# 编程中同时使用 Take 和 Skip 运算符

我们正在创建 Employee 类的两个实例,e 和 e1。 e 被分配给 e1。两个对象都指向同一个引用,因此我们将得到 true 对于所有的Equals,预期输出

在第二个案例中,我们可以观察到,尽管属性值相同 Equals返回false。基本上,当参数引用不同的对象时 等于不检查值并始终返回 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

Example 2

中文翻译为:

示例 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

以上就是如何在 LINQ C# 编程中同时使用 Take 和 Skip 运算符的详细内容,更多请关注编程之家其它相关文章

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐