C# 在文本文件中搜索某些值

C# 在文本文件中搜索某些值,c#,C#,我有一个要求,当我在一个文件夹中有一堆文件,我需要确定一些符合特定搜索条件的文件 我的文件内容如下 <app>1.0 <app> <name> Test Name <name> 1 测试名称 我的要求是进入这些文件夹并检查符合特定搜索条件的文件。 例如,app=1.0和name='testname'这是一种方法。当然,如果你要做大量的搜索,那么就使用dictionary方法 void Main() { var source = @"<app>1.0 &

我有一个要求,当我在一个文件夹中有一堆文件,我需要确定一些符合特定搜索条件的文件

我的文件内容如下

<app>1.0 <app> <name> Test Name <name> 1 测试名称 我的要求是进入这些文件夹并检查符合特定搜索条件的文件。
例如,app=1.0和name='testname'

这是一种方法。当然,如果你要做大量的搜索,那么就使用dictionary方法

void Main()
{
    var source = @"<app>1.0 <app>
<name> Test Name <name>";
    var regex = new Regex(@"<(?<key>\w+)>\s*(?<value>[^<]*)\s*<\1>");

    var matches = regex.Matches(source)
      .Cast<Match>()
      .Select(m=>new KeyValuePair<string,string>(m.Groups["key"].Value, m.Groups["value"].Value));

    // Your test here
    if (matches.Any(kvp=>kvp.Key == "app" && kvp.Value == "1.0"))
    {     
      //...
    }

    /* Here is the dictionary way */
    var matchDict = regex.Matches(source)
      .Cast<Match>()
      .ToDictionary(m=>m.Groups["key"].Value, m=>m.Groups["value"].Value);

    // Your dict test here
    if (matchDict["app"] == "1.0")
    {
      //...
    }
}
void Main()
{
变量源=@“1.0
测试名称”;

var regex=new regex(@“\s*(?[^这是一种方法。当然,如果要进行大量搜索,请使用dictionary方法

void Main()
{
    var source = @"<app>1.0 <app>
<name> Test Name <name>";
    var regex = new Regex(@"<(?<key>\w+)>\s*(?<value>[^<]*)\s*<\1>");

    var matches = regex.Matches(source)
      .Cast<Match>()
      .Select(m=>new KeyValuePair<string,string>(m.Groups["key"].Value, m.Groups["value"].Value));

    // Your test here
    if (matches.Any(kvp=>kvp.Key == "app" && kvp.Value == "1.0"))
    {     
      //...
    }

    /* Here is the dictionary way */
    var matchDict = regex.Matches(source)
      .Cast<Match>()
      .ToDictionary(m=>m.Groups["key"].Value, m=>m.Groups["value"].Value);

    // Your dict test here
    if (matchDict["app"] == "1.0")
    {
      //...
    }
}
void Main()
{
变量源=@“1.0
测试名称”;

var regex=new regex(@“\s*(?)?[^您是按名称还是按内容搜索文件?您尝试了什么?Nir Sofer提供的一个名为SearchMyFiles的实用程序可以在不进行任何编码的情况下执行此操作。它们始终是XML文件吗?您可以使用XMLDocument类并使用XPath进行查找。我使用了正则表达式来执行此操作,但没有达到任何目的。您可以使用正则表达式向我们展示不起作用的代码吗?您在搜索吗按名称或内容查找文件?您尝试过什么?Nir Sofer提供的一个名为SearchMyFiles的实用程序可以不进行任何编码就完成这项工作。它们始终是XML文件吗?您可以使用XMLDocument类并使用XPath查找。我使用正则表达式来完成这项工作,但没有达到任何目的。您可以使用正则表达式向我们展示不起作用的代码吗?如果您真的想使用Linq您可以将其转换为一个可以从Linq Where语句调用的方法,传入需要存在/匹配才能返回true的键和值的字典。感谢Robert和所有帮助过我的人如果您真的想使用Linq,您可以将其转换为一个可以从Linq Where语句调用的方法,传入DICT所有需要存在/匹配才能返回true的键和值。感谢Robert和所有帮助我的人