需要一个表达式以查找列表<string>

时间:2018-08-08 06:05:00

标签: .net linq lambda predicate

我正在创建一个通用方法,该方法生成谓词以过滤数据。这是我的包含方法

Expression.Call(Member, typeof(string).GetMethod("Contains"), constant)

像明智的选择一样,我需要一个表达式来在字符串列表中找到逗号分隔的字符串。请帮忙。

List<string> abc;
string xyz = "a,d,j";

然后,如果包含xyz字符串的字符串列表(即a或d或j字符串)将相应地过滤字符串列表。

1 个答案:

答案 0 :(得分:0)

这是一个简单的示例,使用您注释中的值:

void Main()
{
    var input = new List<string>() { "abc", "qwe", "zxc" };
    string filter = "b,z";
    var results = input.Where(i => ContainsAny(i, filter));
}

bool ContainsAny(string input, string filter)
{
    var filters = filter.Split(',');
    foreach (var f in filters)
        if (input.Contains(f))
            return true;
    return false;
}