gpt4 book ai didi

c# - 合并两个 SyndicationFeed

转载 作者:可可西里 更新时间:2023-11-01 09:06:59 26 4
gpt4 key购买 nike

合并 feedfeed2 的简单方法是什么?我希望将 feed2 中的项目添加到 feed。此外,我想避免重复,因为当问题同时使用 WPF 和 Silverlight 标记时,feed 可能已经有项目。

Uri feedUri = new Uri("http://stackoverflow.com/feeds/tag/silverlight");
XmlReader reader = XmlReader.Create(feedUri.AbsoluteUri);
SyndicationFeed feed = SyndicationFeed.Load(reader);

Uri feed2Uri = new Uri("http://stackoverflow.com/feeds/tag/wpf");
XmlReader reader2 = XmlReader.Create(feed2Uri.AbsoluteUri);
SyndicationFeed feed2 = SyndicationFeed.Load(reader2);

最佳答案

您可以使用 LINQ 来简化连接两个列表的代码(不要忘记将 System.Linq 放入您的使用中,如有必要,请在您的项目中引用 System.Core)这是一个执行联合并将它们打印到的 Main控制台(适当清理阅读器)。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Xml;
using System.ServiceModel.Syndication;

namespace FeedUnion
{
class Program
{
static void Main(string[] args)
{
Uri feedUri = new Uri("http://stackoverflow.com/feeds/tag/silverlight");
SyndicationFeed feed;
SyndicationFeed feed2;
using(XmlReader reader = XmlReader.Create(feedUri.AbsoluteUri))
{
feed= SyndicationFeed.Load(reader);
}
Uri feed2Uri = new Uri("http://stackoverflow.com/feeds/tag/wpf");
using (XmlReader reader2 = XmlReader.Create(feed2Uri.AbsoluteUri))
{
feed2 = SyndicationFeed.Load(reader2);
}
SyndicationFeed feed3 = new SyndicationFeed(feed.Items.Union(feed2.Items));
StringBuilder builder = new StringBuilder();
using (XmlWriter writer = XmlWriter.Create(builder))
{
feed3.SaveAsRss20(writer);
System.Console.Write(builder.ToString());
System.Console.Read();
}
}
}
}

关于c# - 合并两个 SyndicationFeed,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/79197/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com