如果我有来自c#文本框的用户输入,并且有一个单词的CSV文件,例如用户输入为:“哇,那很酷的LOL”和CSV文件:
LOL大声笑出来ROFL滚动地板笑
如何比较输入文本以查找文件中的任何匹配项?我该如何加载文件?
答案 0 :(得分:0)
你可以这样做:
string input = "Wow that's cool LOL";
string[] splitArray = input.Split();
bool ifFound = File.ReadLines("yourCVSFilePath.csv")
.Any(line => splitArray.Any(line.Contains));
它正在做:
如果要执行字符串比较忽略大小写,则可以执行以下操作:
bool ifFound = File.ReadLines("yourCVSFilePath.csv")
.Any(line =>
splitArray.Any(sa =>
line.IndexOf(sa, StringComparison.CurrentCultureIgnoreCase) > -1));
答案 1 :(得分:0)
您可以使用File.ReadLines
读取csv文件和LINQ中的行来过滤它们:
string input = "Wow that's cool LOL";
string[] words = input.Split();
char delimiter = '\t'; // for example
IEnumerable<string> matchingLines = File.ReadLines("yourCVSFilePath.csv")
.Where(line => words.Intersect(line.Split(delimiter)).Any())
.ToList(());
Intersect
... Any
方法是此替代查询的优化版本:
......
.Where(line => words.Any(word => line.Split(delimiter).Contains(word)))