简体   繁体   English

带有多个或条件的 C# Object.Equals()

[英]C# Object.Equals() with multiple or conditions

How can I use the Equals method, so that it checks if the user ID equals any of the IDs in someIDs?我如何使用 Equals 方法,以便它检查用户 ID 是否等于 someID 中的任何ID? In this case, I want to get all the users where the ID is the same as the IDs in someIDs.在这种情况下,我想获取 ID 与 someIDs 中的 ID 相同的所有用户。

List<int> someIDs = someList.Select(x => x.id).ToList();
List<User> result = allUsers.Where(x => x.id.Equals(someIDs)).ToList();

This is what works, however it is hardcoded.这是有效的,但是它是硬编码的。 I want it to be similar.我希望它是相似的。

List<int> someIDs = someList.Select(x => x.id).ToList();
List<User> result = allUsers.Where(x => x.id.Equals(someIDs[0]) ||
                                        x.id.Equals(someIDs[1]) ||
                                        x.id.Equals(someIDs[2])
).ToList();

You should not override Equals to provide a method for checking the id matches a list.应该重写Equals为检查提供了一个方法id列表相匹配。 Instead use what is already provided on an array/list而是使用数组/列表中已经提供的内容

var result = allUsers.Where(x => someIDs.Contains(x.id)).ToList();

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 C#中的Object.Equals澄清? - Object.Equals clarification in C#? 有效的C#:覆盖Object.Equals(),不管是不是? - Effective C#: Overriding Object.Equals(), yay or nay? C#:静态object.Equals如何检查是否相等? - C#: How does the static object.Equals check for equality? 如何在 C# “object.equals”中使用“或”(|)运算符 - How do I use “or” (|) operator in C# “object.equals” C#operator ==,StringBuilder.Equals,Object.Equals和Object.ReferenceEquals之间的差异 - C# Differences between operator ==, StringBuilder.Equals, Object.Equals and Object.ReferenceEquals c#中Object.Equals(object,object)和Object.ReferenceEquals(object,object)之间的区别 - difference between Object.Equals(object,object) and Object.ReferenceEquals(object,object) in c# C#运算符重载:Object.Equals(object o)和Object.GetHashCode() - C# operator overloading: Object.Equals(object o) & Object.GetHashCode() Object.Equals是虚拟的,但是Object.operator ==不在C#中使用它吗? - Object.Equals is virtual, but Object.operator== does not use it in C#? C# Net.Core Object.Equals() 返回 false 即使两个对象相同 - C# Net.Core Object.Equals() returning false even if both objects are the same obj1.Equals(obj2)和c#中的静态Object.Equals(obj1,obj2)有什么区别? - What's the difference between obj1.Equals(obj2) and static Object.Equals(obj1, obj2) in c#?
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM