对 list\set 个元素执行条件

Execute condition over a list\set of elements

假设我有一个元素列表:["A", "B", "C", "X"] 以及用于检查该列表的动态条件,例如:"A" && "D",因此 "A" 和 "D" 必须是满足条件的列表的一部分。

大多数 IEnumerable 命令确实对单个元素应用 FuncPredicate,而在我的例子中,我希望将条件应用于整个列表。

如何验证给定列表是否满足动态条件,list.Meets(condition)

我尝试将字符串条件转换为 Expression,但解决方案太复杂了。

谢谢

你可以使用 Linq 做这样的事情

public bool IsMatch(char[] arrToCheck, char[] condition)
{
    return condition.All(ch => arrToCheck.IndexOf(ch) > -1);
}

你也可以使用扩展方法

public static bool IsMatch(this char[] arrToCheck, char[] condition)
{
    return condition.All(ch => arrToCheck.IndexOf(ch) > -1);
}

所以你可以这样消费

myArray.IsMatch(['A', 'D']);

我终于构建了一个小条件解析器。 解析器能够处理包含 And 或 Or 逻辑表达式的字符串条件,也能够处理括号。

这里是 link 的解决方案: https://github.com/aberbegall/ConditionParser