我使用两种方法根据提供的keyname和keyvalue返回一个子集或过滤的对象列表。传递单个keyname和keyvalue的第一个方法可以正常工作,但传递keyname和List的潜在值的第二个方法总是返回一个空列表。任何人都可以帮助第二种方法的语法,让我知道我做错了什么?
这个有效:
public List<GenericDataObject> FilterItems(string ItemStatus, string KeyName, object KeyValue)
{
return this.Items.Where(p => p.PropString("ItemStatus") == ItemStatus && p.Prop(KeyName).Equals(KeyValue)).ToList();
}
这个没有:
public List<GenericDataObject> FilterItems(string ItemStatus, string KeyName, List<object> KeyValues)
{
return this.Items.Where(p => p.PropString("ItemStatus") == ItemStatus && KeyValues.Contains(p.Prop(KeyName))).ToList();
}
答案 0 :(得分:0)
只需将您的条件重写为此
即可KeyValues.Any(x => x.Equals(p.Prop(KeyName)))