Linq包含对象的方法

Bru*_*oLM 7 c# linq

我有一个对象User,它是以下类:

public class User
{
    public int ID { get; set; }
    public string Name { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

我有一个 IEnumerable<User>

我想知道是否存在一个特定用户IEnumerable<User>,比较用户的ID.

一个例子:

IList<User> users = GetUsers();     // 1, 2, 3
IEnumerable<User> list = GetList(); // 2, 5, 8

// this doesn't work
list.Contains(users[0].ID);         // false
list.Contains(users[1].ID);         // true !
list.Contains(users[2].ID);         // false
Run Code Online (Sandbox Code Playgroud)

我该怎么做?什么是检索此布尔值的最快方法,是包含吗?

Ree*_*sey 13

你需要检查一个User,而不是一个int. Enumerable.Any适用于此:

// this does work
list.Any(user => user.ID == users[0].ID);         // false
list.Any(user => user.ID == users[1].ID);         // true !
list.Any(user => user.ID == users[2].ID);         // false
Run Code Online (Sandbox Code Playgroud)