.net 需要表达式才能在列表中查找逗号分隔的字符串<;字符串>;

.net 需要表达式才能在列表中查找逗号分隔的字符串<;字符串>;,.net,linq,lambda,predicate,.net,Linq,Lambda,Predicate,我正在创建一个生成谓词以过滤数据的通用方法。这是我的方法 Expression.Call(Member, typeof(string).GetMethod("Contains"), constant) 像wise一样,我需要一个表达式来在字符串列表中查找逗号分隔的字符串。请帮忙 List<string> abc; string xyz = "a,d,j"; 列出abc; 字符串xyz=“a,d,j”; 然后,如果字符串列表包含xyz字符串,即a、d或j字符串,它将相应地过滤字符

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

Expression.Call(Member, typeof(string).GetMethod("Contains"), constant)
像wise一样,我需要一个表达式来在字符串列表中查找逗号分隔的字符串。请帮忙

List<string> abc;
string xyz = "a,d,j";
列出abc;
字符串xyz=“a,d,j”;

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

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

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;
}
void Main()
{
var input=新列表(){“abc”、“qwe”、“zxc”};
字符串过滤器=“b,z”;
var results=input.Where(i=>ContainsAny(i,filter));
}
bool ContainsAny(字符串输入、字符串过滤器)
{
var filters=filter.Split(',');
foreach(过滤器中的var f)
if(输入包含(f))
返回true;
返回false;
}

为什么不
String.Split
?@PanagiotisKanavos我需要表达式,以便它可以生成谓词,我必须在我的泛型方法中使用它。你能帮我表达一下吗!请澄清并提供更多样本数据。字符串的
过滤器列表应该如何工作?abc列表的内容是什么?请具体一点。@Ryan List lst={abc,qwe,zxc}我必须找到b,z,所以它应该返回{abc,zxc}你能提供这个表达式吗?这样我就可以像其他人一样在其中使用predecatecondition@summ
ContainsAny
是谓词。不过,您可以将
Split
移动到ContainsAny方法中。我会更新的。