C#动态集合的位置

Xap*_*ann 0 c# collections

我想基于文本框搜索集合.应允许用户以任何顺序键入多个单词.这意味着如果集合中的字符串是"多么快乐的一天",并且用户键入"day What"字符串应该出现.现在我知道如何用这样的东西硬编码允许的单词数量(例如只允许3个单词);

 nc = oc.Where(X => X.SearchData.IndexOf(words[0]) > -1 || X.SearchData.IndexOf(words[1]) > -1 || X.SearchData.IndexOf(words[2]) > -1);
Run Code Online (Sandbox Code Playgroud)

注意:是的我知道我必须保护以确保数组字中有实际的3个值,但是没有显示.

这个问题是它限制了用户,我不想这样做.如果用户想要搜索10或20件事,那对我来说没问题.

有没有办法为集合oc动态创建Where语句?

谢谢

SLa*_*aks 5

你需要更多的LINQ:

oc.Where(x => words.Any(w => x.SearchData.IndexOf(w) > -1))
Run Code Online (Sandbox Code Playgroud)