Linq施放物体

Dan*_*iel 0 c# linq

我想在添加之前检查一个是否存在但是内部的转换.Any不起作用.

人是ObservableCollection对象,因为每个人都可以是不同的类(每个都有FirstLastName属性).

ObservableCollection<object> People = new ObservableCollection<object>();

foreach (cEmployee t in Group1)
{
  if (!People.Any((cEmployee)x => x.FirstLastName == t.FirstLastName) 
      People.Add(new cEmployee(t));              
}
Run Code Online (Sandbox Code Playgroud)

有解决方法吗?

Jar*_*Par 5

如果他们都保证拥有一个FirstName属性,则可以使用一个选项dynamic

if (!People.Any((dynamic x) => x.FirstName == t.FirstName)) { 
  ...
}
Run Code Online (Sandbox Code Playgroud)

这不是类型安全的,但如果所有值确实具有该属性,则它将起作用.另一方面,如果他们都FirstName使用属性实现公共基本类型或接口,那么您可以使用它

if (!People.OfType<TheType>().Any(x => x.FirstName == t.FirstName)) { 
  ...
}
Run Code Online (Sandbox Code Playgroud)