当前位置: 代码迷 >> C# >> 大神们请问一下INI读取有关问题
  详细解决方案

大神们请问一下INI读取有关问题

热度:91   发布时间:2016-05-05 04:14:45.0
大神们请教一下INI读取问题
例某INI文件如下:
[config]
fig=1
fig=2
fig=3

这样的INI如何读取fig的所有值。就是1 2 3都读取出来!求解答,纠结好久了!
------解决思路----------------------
如果不同段的参数中有可能同名,那么我们就需要区分不同的段。例如对于
[config]
 fig=1
 fig=2
 fig=3

 [config1]
 fig=4
 fig=5
 fig=6

这在读取参数时就需要把分段命名也写上。这样的分析程序可以这样写:
var lst = (from ln in File.ReadAllLines(Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "test.ini"))
            let ln1 = ln.Trim()
            where ln1.Length > 0
            let sn = ln1.Split(new char[] { '=' }, 2)
            select sn).ToList();
var seg = string.Empty;
foreach (var x in lst)
{
    if (x.Length == 1)
        seg = x[0];
    else
        x[0] = seg + x[0];
}
var dic = (from sn in lst
            where sn.Length == 2
            group sn by sn[0] into g
            select new
            {
                key = g.Key,
                values = (from x in g
                            select x[1]).ToArray()
            }).ToDictionary(x => x.key, x => x.values);

var v1 = dic["[config]fig"];
var v2 = dic["[config1]fig"];
  相关解决方案