我可以将两个IEnumerable <string>合并到IEnumerable <string,string> </string,string> </string>

时间:2014-11-08 18:56:56

标签: c# linq ienumerable

我有两个IEnumerable<string>

IEnumerable<String> titleCollection = htmlDoc.DocumentNode.SelectNodes("//h2[@class=
'entry-title']/a").Select(x => x.InnerHtml);

IEnumerable<String> allImages = htmlDoc.DocumentNode.SelectNodes("//div[@class=
'entry-thumbnail hover-thumb']/a/img").Select(x => x.Attributes["src"].Value);  

是否可以将它们合并到单个IEnumerable<HTMLELEmsnts>。肯定会出现并发症,但有什么办法。

class HTMLElements
    {
        //private string _articeName;

        public string ArticleName { get; set; }
        public string ImageURL { get; set; }
    }

1 个答案:

答案 0 :(得分:6)

没有IEnumerable<string, string>之类的东西。 IEnumerable<T>只有一个类型参数。

但您可以使用Enumerable.Zip<TFirst, TSecond, TResult>创建IEnumerable<Tuple<string, string>>或类似内容。

编辑:

根据更新的问题,您似乎可能想要这样的内容:

IEnumerable<HTMLElements> Merge(IEnumerable<string> names, IEnumerable<string> urls)
{
    return names.Zip(urls, (name, url) => new HTMLElements(name, url));
}