如何用linQ读取字典行

时间:2013-05-06 21:07:46

标签: c# linq dictionary

好的,我得到了以下代码,但它无法正常工作

我希望行是键,值是0

c#4.5

    ConcurrentDictionary<string, int> dicFailedProxies = 
    new ConcurrentDictionary<string, int>();

   dicFailedProxies = File.ReadAllLines("failed_proxies.txt")
   .Select(line => line).Distinct()
   .ToDictionary(values => values, 0);

enter image description here

1 个答案:

答案 0 :(得分:2)

问题是您需要为ToDictionary的第二个参数提供lambda表达式。 ToDictionary也会返回Dictionary<T, U>,因此您无法将其分配给ConcurrentDictionary<T, U>的实例。

这应该可以解决问题:

var dicFailedProxies = 
    File.ReadLines("failed_proxies.txt")
        .Distinct()
        .ToDictionary(line => line, line => 0);

当然,如果您想将其保留为ConcurrentDictionary<T, U>,则可以执行此操作:

var dicFailedProxies = new ConcurrentDictionary<string, int>(
    File.ReadLines("failed_proxies.txt")
        .Distinct()
        .ToDictionary(line => line, line => 0));