C#LINQ获取字段值与字符串数组黑名单不匹配的对象

Ada*_*itt 2 c# linq

我有以下代码:

public class MyObject {
  public string Name { get; set; }

  public MyObject(string name) {
    Name = name;
  }  
}

// caller method somewhere
public void myMethod() {
  List<MyObject> myObjects = new List<MyObject>();
  myObjects.Add(new MyObject("Jim"));
  myObjects.Add(new MyObject("David"));
  myObjects.Add(new MyObject("Richard"));
  myObjects.Add(new MyObject("Steve"));

  string[] namesToExclude = new string[] { "Jim", "Steve" };
  List<string> strings = myObjects.Select(m => m.Name).Except(namesToExclude).ToList();
  // replace the above line to result in List<MyObject> with 2 items (David, Richard)
}
Run Code Online (Sandbox Code Playgroud)

我想让最后一行工作,所以我可以把这个列表作为一个List<MyObject>而不是一个List<string>.

thu*_*eys 7

试试这个:

 var objects = 
      myObjects.Where(m => !namesToExclude.Contains(m.Name)).ToList();
Run Code Online (Sandbox Code Playgroud)