Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/259.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 林肯的平等比较-我该怎么办?_C#_.net_Visual Studio 2008_Linq - Fatal编程技术网

C# 林肯的平等比较-我该怎么办?

C# 林肯的平等比较-我该怎么办?,c#,.net,visual-studio-2008,linq,C#,.net,Visual Studio 2008,Linq,我认为下面的代码是好的。但是我怎么能用LINQ写呢?如何比较linq中的Employee type对象 namespace GenericReplacement { class Program { static void Main(string[] args) { EmployeeComparer employeeComparer = new EmployeeComparer(); Employee

我认为下面的代码是好的。但是我怎么能用LINQ写呢?如何比较linq中的Employee type对象

namespace GenericReplacement
{
    class Program
    {
        static void Main(string[] args)
        {
            EmployeeComparer employeeComparer = new EmployeeComparer();

            Employee employee1 = new Employee() { ID = 1, Name = "yusuf", SurName = "karatoprak" };
            Employee employee2 = new Employee() { ID = 2, Name = "Ali", SurName = "Yılmaz" };

            bool returnValue = employeeComparer.Equals(employee1, employee2);
            int returnValueHashCode = employeeComparer.GetHashCode(employee1);

            Console.WriteLine("Result: "+returnValue.ToString()+"\n");
            Console.WriteLine(returnValueHashCode.ToString());
            Console.ReadKey();
        }
    }

    public class EmployeeComparer: EqualityComparer<Employee>
    {
        public override bool Equals(Employee x, Employee y)
        {
            return EqualityComparer<Employee>.Default.Equals(x, y);
        }

        public override int GetHashCode(Employee obj)
        {
            return EqualityComparer<Employee>.Default.GetHashCode(obj);
        }
    }

    public class Employee
    {
        public int ID { get; set; }
        public string Name { get; set; }
        public string SurName { get; set; }
    }
}
命名空间通用替换
{
班级计划
{
静态void Main(字符串[]参数)
{
EmployeeComparer EmployeeComparer=新的EmployeeComparer();
Employee employee1=new Employee(){ID=1,Name=“yusuf”,Name=“karatoprak”};
employee2=新员工(){ID=2,Name=“Ali”,Name=“Yılmaz”};
bool returnValue=employeeComparer.Equals(employee1,employee2);
int returnValueHashCode=employeeComparer.GetHashCode(employee1);
Console.WriteLine(“结果:+returnValue.ToString()+”\n”);
Console.WriteLine(returnValueHashCode.ToString());
Console.ReadKey();
}
}
公共类EmployeeComparer:EqualityComparer
{
公共覆盖布尔等于(雇员x,雇员y)
{
返回EqualityComparer.Default.Equals(x,y);
}
公共覆盖int GetHashCode(员工对象)
{
返回EqualityComparer.Default.GetHashCode(obj);
}
}
公营雇员
{
公共int ID{get;set;}
公共字符串名称{get;set;}
公共字符串姓氏{get;set;}
}
}

不确定为什么需要执行此操作,因为如果要对这些项目所在的集合(查询等)执行某些操作,通常会使用LINQ。如果出于某种原因,你不得不这样做(同样不知道为什么),你可以这样做:

 List<Employee> employees = new List<Employee>();
 employees.Add(employee1);

 List<Employee> employees2 = new List<Employee>();
 employees2.Add(employee2);

 IEnumerable<Employee> equalList = employees.Intersect(employees2, new EmployeeComparer());

 if (equalList.Count() == 0)
 {
       MessageBox.Show("Not equal");
 }
 else
 {
       MessageBox.Show("Equal");
 }
List employees=newlist();
添加(雇员1);
List employees2=新列表();
员工2.添加(员工2);
IEnumerable equalList=employees.Intersect(employees2,new EmployeeComparer());
if(equalList.Count()==0)
{
MessageBox.Show(“不相等”);
}
其他的
{
MessageBox.Show(“相等”);
}

不确定为什么需要执行此操作,因为如果要对这些项目所在的集合(查询等)执行某些操作,通常会使用LINQ。如果出于某种原因,你不得不这样做(同样不知道为什么),你可以这样做:

 List<Employee> employees = new List<Employee>();
 employees.Add(employee1);

 List<Employee> employees2 = new List<Employee>();
 employees2.Add(employee2);

 IEnumerable<Employee> equalList = employees.Intersect(employees2, new EmployeeComparer());

 if (equalList.Count() == 0)
 {
       MessageBox.Show("Not equal");
 }
 else
 {
       MessageBox.Show("Equal");
 }
List employees=newlist();
添加(雇员1);
List employees2=新列表();
员工2.添加(员工2);
IEnumerable equalList=employees.Intersect(employees2,new EmployeeComparer());
if(equalList.Count()==0)
{
MessageBox.Show(“不相等”);
}
其他的
{
MessageBox.Show(“相等”);
}

LINQ并不意味着要替换所有现有代码。LINQ特别适合于某些任务(例如查询集合或数据库),但它并不适用于所有任务

如果您有员工的可枚举项,那么使用LINQ比较这两个可枚举项可能是有意义的。例如,您可以使用带比较器的重载:

bool result = Enumerable.SequenceEqual(first, second, comparer);

使用LINQ来比较两个单个项目似乎没有必要。

LINQ并不意味着要替换所有现有代码。LINQ特别适合于某些任务(例如查询集合或数据库),但它并不适用于所有任务

如果您有员工的可枚举项,那么使用LINQ比较这两个可枚举项可能是有意义的。例如,您可以使用带比较器的重载:

bool result = Enumerable.SequenceEqual(first, second, comparer);

为了比较两个单独的项目,似乎没有必要使用LINQ。

在LINQ中写什么?您编写的代码不需要在LINQ中重写。如何比较LINQ中的Employee type对象?为什么??你想完成什么??LINQ就是顾名思义的查询(LINQ=语言集成查询)——它不是为代码中的每个操作而设计的。我不认为在LINQ中写这样的东西有任何意义或好处(或者更好:使用LINQ)。在LINQ中写什么?您编写的代码不需要在LINQ中重写。如何比较LINQ中的Employee type对象?为什么??你想完成什么??LINQ就是顾名思义的查询(LINQ=语言集成查询)——它不是为代码中的每个操作而设计的。我看不出“在LINQ中”写这样的东西有什么意义或好处(或者更好:使用LINQ)。