在控制台App中搜索数据!

时间:2011-02-04 17:25:35

标签: c#

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();
        }
    }
}

我编写了一个控制台应用程序,它显示桌面上本地文件的信息,并显示文件中的内容。我想知道如何创建一个可以搜索关键字并且只显示单词的函数,我希望它能够搜索?

任何人都可以帮助我吗?

5 个答案:

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

我会从File.ReadAllText开始,然后继续推进System.Text.RegularExpressions.Regex

答案 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个字符,但这可能需要更多的工作。原油,但很简单。