对于我正在尝试学习的内容,这可能是一个措辞不当的问题,所以我将解释我正在尝试做什么。我使用以下表达式创建了以下列表:
var showIndexes = from item in lItems
where WildcardString.IsMatch(item.RecordId.ToString(), filter) ||
WildcardString.IsMatch(item.Tokens.ToString(), filter) ||
WildcardString.IsMatch(string.Format("{0}:{1}", item.OwnerID.SystemName, item.OwnerID.Port.ToString()), filter) ||
WildcardString.IsMatch(item.ChildID.UserName, filter) ||
WildcardString.IsMatch(item.TypeOfLicense.ToString(), filter) ||
WildcardString.IsMatch(item.ExpiryTime.DateTime.ToLocalTime().ToString(), filter)
select item.RecordId.ToString();
我想将此表达式放入一个函数中,并将“where”中使用的约束作为单个参数传递。我如何实现这一目标?在处理文件属性(当您选择不同的属性枚举时)时,我已经看到使用按位 OR 的类似功能,所以我相信应该可以编写我自己的函数,该函数将一组委托作为“where”规则。
如果相关,则 WildcardString.IsMatch(string, string) 是一个布尔函数。此外,我有三个不同的函数执行完全相同的操作,但在不同的列表中,这就是为什么我想学习如何将其简化为单个函数,只需传递列表和选择规则。