将文本文件读入字典而不重复

sil*_*ent 5 c# linq

我正在使用简短的Linq表达式将文本文件读入字典

string[] lines = File.ReadAllLines(path);
var dictionary = lines.Select(line => line.Split(';')).ToDictionary(keyValue => keyValue[0], bits => bits[1]);
Run Code Online (Sandbox Code Playgroud)

只要我的文本文件中没有重复的键,这就可以正常工作.是否有一个简短的方法来过滤那些没有很长的路并迭代线[]数组?

Tim*_*ter 10

您可以GroupBy先使用:

var dictionary = lines.Select(line => line.Split(';'))
    .GroupBy(arr => arr[0])
    .ToDictionary(g => g.Key, g => g.First()[1]);
Run Code Online (Sandbox Code Playgroud)

这将选择每个副本的第一个元素,如果不需要,则必须相应地更改g.First.例如,您可以使用逗号分隔值:

var dictionary = lines.Select(line => line.Split(';'))
    .GroupBy(arr => arr[0])
    .ToDictionary(g => g.Key, g => string.Join(",", g.Select(arr=> arr[1])));
Run Code Online (Sandbox Code Playgroud)