gar*_*ary 6 .net c# linq string dynamic
我有一组字符串.我需要从这个集合中找出满足某些条件的字符串,例如字符串包含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;
Run Code Online (Sandbox Code Playgroud)
我想使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);
Run Code Online (Sandbox Code Playgroud)
如果您想自己完成,请从这里开始: 动态谓词: http://msdn.microsoft.com/en-us/library/bb513731.aspx 动态表达式树: http://msdn.microsoft.com/en -us/library/bb882637.aspx
我认为这超出了您的预期,并且强烈建议使用一些(轻量级)现成且经过测试的库,它可以为您从用户字符串到运行时查询的转换。