捕获 ToDictionary 调用中的异常

Mol*_*man 4 c# linq dictionary exception

我有简单的 LINQ 语句,它分割一个字符串,然后将值放入字典中。问题在于,字典很少已经具有相同值的现有键,因此会引发异常并且“dict”的值仍为空。

dict = lines.Select(l => l.Split('|')).ToDictionary(d => d[0], d => d[1]);
Run Code Online (Sandbox Code Playgroud)

有没有办法修改 LINQ 语句以在插入之前检查字典是否已经有键或捕获异常但继续将其余值写入字典?我尝试在该行周围放置一个 try 块,它捕获了异常,但导致没有添加任何元素,因此字典仍为空。

Ode*_*ded 5

不要使用ToDictionary普通的按键foreach并测试按键。

将查询从转换为字典中分离出来。

var splits = lines.Select(l => l.Split('|'));

var dict = new Dictionary<string,string>();
foreach(var item in splits)
{
   if(!dict.ContainsKey(item[0]))
       dict.Add(item[0], item[1]);
}
Run Code Online (Sandbox Code Playgroud)