Parallel.ForEach给出了错误

时间:2013-10-04 02:12:32

标签: c# parallel.foreach

我一直在尝试搜索我可以为Parallel.ForEach循环做些什么:

        selection.Words is Microsoft.Office.Interop.Word.Selection;
        //range is supposed to be a word.Range
        Parallel.ForEach(selection.Words, range =>
        {

        });

这是我收到的错误,方法“ System.Threading.Tasks.Parallel.ForEach(System.Collections.Concurrent.OrderablePartitioner,System.Action)”的类型参数无法从用法中推断出来。请尝试明确指定类型参数。

我一直在寻找一个美好的时光,但所有这些都只是显示object.AsEnumerable()作为答案。但是,词语不能成为一个令人难忘的词汇。

2 个答案:

答案 0 :(得分:9)

您可以看到Words类型是非通用的可枚举类型 - 因此编译器无法推断ForEach<TSource>的泛型类型参数。您可以使用OfType<Range>

将集合转换为类型化的通用集合
Parallel.ForEach(selection.Words.OfType<Microsoft.Office.Interop.Word.Range>(), range =>
    {

    });

答案 1 :(得分:-1)

您是否尝试过明确指定类型。

var list = new List<string>();
Parallel.ForEach<string>(list, (s) => s.Trim());