将用户输入文本与CSV文件C#进行比较

时间:2016-04-05 14:47:41

标签: c# file csv text compare

如果我有来自c#文本框的用户输入,并且有一个单词的CSV文件,例如用户输入为:“哇,那很酷的LOL”和CSV文件:

LOL大声笑出来

ROFL滚动地板笑

如何比较输入文本以查找文件中的任何匹配项?我该如何加载文件?

2 个答案:

答案 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));

它正在做:

  • 将输入拆分为要单独比较的单词数组。
  • 逐行加载文件(延迟加载)
  • 比较以查看split数组中的任何单词是否与行中的任何单词匹配。

如果要执行字符串比较忽略大小写,则可以执行以下操作:

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)))