我有一个字符串集合。我需要从这个集合字符串中找出满足某些条件的字符串,例如该字符串包含 A 和 B 或 C。这些条件由用户指定,因此它们是动态的。在 Linq 中它应该是这样的,
List<String> items = new List<string> { "sdsdsd", "sdsd", "abc"};
var query = from item in items
where item.Contains("a") && item.Contains("b") || item.Contains("c")
select item;
我想使 where 条件动态化,以便它可以处理用户的任何输入。是否可以在不使用任何外部库的情况下在 C# 中执行此操作。也许使用 Linq 或其他内置于 .Net 框架中的东西。
谢谢, 加里
最佳答案
虽然您不想使用外部库,但有一个非常棒,那就是 PredicateBuilder .谓词生成器允许您建立一组谓词来匹配项目,例如:
var predicate = PredicateBuilder.True<string>();
predicate = predicate
.And(p => p.Contains("a"))
.And(p => p.Contains("b"));
var matches = items.Where(predicate);
关于c# - 在 C# 中动态评估字符串条件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3186170/