using System;
using System.IO;
using System.Collections;
namespace ReadFiles
{
class Program
{
static void Main(string[] args)
{
StreamReader objstream = new StreamReader("c:\\documents and settings\\btallos\\desktop\\Company.txt");
string sLine ="";
ArrayList arrText = new ArrayList();
while (sLine != null)
{
sLine = objstream.ReadLine();
if (sLine != null)
arrText.Add(sLine);
}
objstream.Close();
foreach (string sOutput in arrText)
Console.WriteLine(sOutput);
Console.ReadLine();
}
}
}
我编写了一个控制台应用程序,它显示桌面上本地文件的信息,并显示文件中的内容。我想知道如何创建一个可以搜索关键字并且只显示单词的函数,我希望它能够搜索?
任何人都可以帮助我吗?
答案 0 :(得分:2)
您应该使用通用List而不是ArrayList。然后,您可以使用Where方法并提供要搜索的字符串,如下所示:
var lines = File.ReadAllLines("filename").ToList(); // Read all lines and cast it to a List<string>
var matches = lines.Where(x => x == "query");
foerach(var match in matches)
{
Console.WriteLine(match);
}
这将找到与您的查询相同的所有项目。
您可以通过将x => x == "query"
切换为x => x.Contains("query")
答案 1 :(得分:0)
答案 2 :(得分:0)
模糊要求,但这是我理解的解决方案:
var keywords = new string[] {"some", "keywords"};
var foundKeywords = File.ReadAllLines("filename").
SelectMany(line => keywords.Where(keyword => line.Contains(keyword))).
Distinct();
可以改进标准(例如,使用正则表达式)。目前它还会返回关键字,这些关键字是其他单词的子串。
答案 3 :(得分:0)
我将尝试将此内容放入数据库中 - 然后搜索我希望它显示的内容。
* ZIP Codes
* Area Codes
* City Name
* State Name
* Two digit State Code
* City Type
* City Alias Abbrev.
* County Name
* State FIPS
* County FIPS
* Time Zone
* Daylight Savings Indicator
* Number of Businesses
* Q1 Payroll
* Annual Payroll
* Number of Employees
* Employment Flag
* County Growth Rate
答案 4 :(得分:0)
您可以弄清楚如何突出显示要在控制台应用中搜索的文本(例如,在发布前/后添加$$搜索文本$$)。打开每个文档并运行正则表达式替换。如果返回的字符串长度与原始字符串不同,则表示匹配。如果您不想显示整个文档,我会在之前获得50个字符,例如50个字符,但这可能需要更多的工作。原油,但很简单。