我之前从未使用过这个。我需要在查询中添加另一个成员。如何添加"链接"来源"?
var titles = regexTitles.Matches(pageContent).Cast<Match>();
var dates = regexDate.Matches(pageContent).Cast<Match>();
var link = regexLink.Matches(pageContent).Cast<Match>();
var source = titles.Zip(dates, (t, d) => new { Title = t, Date = d });
foreach (var item in source)
{
var articleTitle = item.Title.Groups[1].Value;
var articleDate = item.Date.Groups[1].Value;
//var articleLink = item.Link.Groups[1].Value;
Console.WriteLine(articleTitle);
Console.WriteLine(articleDate);
//Console.WriteLine(articleLink);
Console.WriteLine("");
}
Console.ReadLine();
答案 0 :(得分:2)
听起来你需要另一个电话Zip
。第一个电话会将标题和日期配对,第二个电话会将标题/日期对与链接配对:
var source = titles.Zip(dates, (t, d) => new { t, d })
.Zip(link, (td, l) => new { Title = td.t,
Date = td.d,
Link = l });
或(等效地,仅使用投影初始化器):
var source = titles.Zip(dates, (Title, Date) => new { Title, Date })
.Zip(link, (td, Link) => new { td.Title, td.Date, Link });
(我有时候认为让Zip
有两个重载需要另外几个重载才能获得三个或四个序列...这不会太难。也许我会将它们添加到{{3 }):)
答案 1 :(得分:2)
您可以再次轻松使用Zip
,如下面的代码所示:
var source = titles.Zip(dates, (t, d) => new { Title = t, Date = d });
.Zip(link, (d, l) => new { Title = d.Title,
Date = d.Date,
Link= l });