例某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"];