C# Matchcollection并行。Foreach

C# Matchcollection并行。Foreach,c#,multithreading,parallel-processing,C#,Multithreading,Parallel Processing,我正在尝试为matchcollection创建一个Parallel.Foreach循环。 在我造的刮刀里。 我只是想知道应该把什么放在平行线上 MatchCollection m = Regex.Matches(htmlcon, matchlink, RegexOptions.Singleline); Parallel.ForEach(WHAT DO I PUT HERE? => {

我正在尝试为matchcollection创建一个Parallel.Foreach循环。 在我造的刮刀里。 我只是想知道应该把什么放在平行线上

MatchCollection m = Regex.Matches(htmlcon, matchlink, RegexOptions.Singleline);

                Parallel.ForEach(WHAT DO I PUT HERE? =>
                {

                        Get(match.Groups[1].Value, false);
                        Match fname = Regex.Match(htmlcon, @"<span class=""given-name"(.*?)</span>", RegexOptions.Singleline);
                        Match lname = Regex.Match(htmlcon, @"span class=""family-name"">(.*?)</span>", RegexOptions.Singleline);

                        firstname = fname.Groups[1].Value;
                        lastname = lname.Groups[1].Value;

                        sw.WriteLine(firstname + "," + lastname);
                        sw.Flush();

                }):
MatchCollection m=Regex.Matches(htmlcon、matchlink、RegexOptions.Singleline);
Parallel.ForEach(我在这里放什么?=>
{
获取(match.Groups[1]。值,false);
Match fname=Regex.Match(htmlcon,@)
但是没有运气


提前感谢!:)

这是因为
并行。ForEach
需要一个通用的
IEnumerable
,而
MatchCollection
只实现非通用的

试试这个:

Parallel.ForEach(
    m.OfType<Match>(),
    (match) =>
    {
    );
Parallel.ForEach(
m、 of type(),
(匹配)=>
{
);
Parallel.ForEach(
    m.OfType<Match>(),
    (match) =>
    {
    );