在字符串中查找一行,并从行中获取信息

时间:2011-01-04 01:29:37

标签: c# file

好吧,所以我有一个包含一些数据的文本文件,格式如下:

Info1-Info2
Info3-Info4
Info5-Info6

根据我的程序,我希望能够根据我提供的第一条信息获取一行的内容。所以,如果我给出“Info3”,我希望能够获得值“Info4”并将其放入字符串中。

我已经将文本文件中的文本存储在字符串中了,所以我只需要操作字符串就可以获得我想要的信息。

很抱歉,如果我以一种糟糕的方式解释这一点。谢谢!

2 个答案:

答案 0 :(得分:5)

我会改用IDictionary。

从文件中读取时,将左侧部分(在“ - ”之前)作为“词典”键,将右侧部分作为“值”。

然后你可以通过键获得值:

dictionary [“Info3”]将返回“Info4”。

如果您需要一些实际代码,请告诉我......

编辑:添加代码

namespace ConsoleApplication2 {
    class Program {
        static void Main(string[] args) {
            string line;
            //initialize Dictionary

            var keyMatch = new Dictionary<string, string>();
            //opening the file
            using (TextReader re = File.OpenText("Sample.txt")) {
                //loop through lines
                while ((line = re.ReadLine()) != null) {
                    keyMatch.Add(line.Substring(0, line.IndexOf("-")), line.Substring(line.IndexOf("-") + 1));
                }
            }

            var test = keyMatch["Info5"];
        }
    }
}

答案 1 :(得分:0)

我注意到你将此标记为“正则表达式”。听起来你想要根据输入线(例如Info3)进行切换,因此它会匹配输出线之外的东西(例如Info4)。如果您希望ENTIRE部分匹配(不仅仅是Info4中的某些内容),只需使用上面提到的字典即可。