如何使用Linq处理以下场景:这是示例测试文件
“
^ name A
值a
^名字B
^ name C
valueC
“
我希望linq可以处理它并将它们读入List或字典
公共类NameValue { public string colname; 公共字符串colvalue; }
像这样:({ “name_A”, “值a”},{ “name_B”, “”},{ “name_C”, “valueC”})
基本上每个名称行都以^开头,后跟一个值行,但并非每个名称都在文本文件中附加了一个值。在名称行中,用_。
替换任何空格THX!
答案 0 :(得分:0)
以下是一些应该执行您想要执行的操作的代码:
https://ideone.com/ThplS6
using System;
using System.Text.RegularExpressions;
using System.Linq;
public class Test
{
public static void Main()
{
var input = @"^name A
valueA
^name B
^name C
valueC";
var pattern = @"\^[^\^]*";
var matches = Regex.Matches(input, pattern, RegexOptions.Multiline);
var dict = matches.Cast<Match>().ToDictionary(s => s.Value.Split('\n')[0].Trim().Remove(0, 1), s => s.Value.Split('\n')[1].Trim());
Console.WriteLine(dict.Aggregate(String.Empty, (s, s1) => s + s1.Key + ":" + s1.Value +"|"));
}
}
它使用Regex和LINQ。