如何使收藏快速搜索

本文关键字:搜索 收藏 何使 | 更新日期: 2023-09-27 18:24:07

EDIT:我重新表述了这个问题,并在这篇文章中得到了解决:如何在ConfigurationSection类型的集合中搜索?

原始问题:

我正在我的网络配置中存储一个配置选项列表。我可能最终会在这里有50或100件物品。

我正在使用这里描述的方法:

http://net.tutsplus.com/tutorials/asp-net/how-to-add-custom-configuration-settings-for-your-asp-net-application/

好消息:

它有效,我有一个_Config集合,它包含所有

问题是:如何查询_Config以获取特定提要?(随着时间的推移,我会有50-100个,也许更多……总有一天,它会转移到数据库,但不是现在,因为它托管在azure上,我现在需要避免azure的持久性。)

(既然这会执行很多,也许它应该是哈希表或字典?但我不知道如何创建它们…)

我一直在挣扎,无法将_Config强制转换为列表或我可以查询的内容

问题是:如何将_Config(从上面的链接)转换为可以查询特定提要的内容

最终目标是拥有一个被调用来处理特定提要的函数,因此它只需要该提要记录中的配置信息。在伪代码中,目标类似于:

getFeed(feedname)
    if (_Config.name == feedname) // e.g. feedname is one of the "name" elements in the web.config
        // do the stuff
        GetData(_Config.feedname.url)
    else
        // requested feed is not in our config
        // tell use can't do it

或者,(也是伪代码)

getFeed(feedname)
    try
        thisPassFeed = _Config.feedname;
        string url = thisPassFeed.url;
        // do the stuff
        GetData(url);
    catch
        // requested feed is not in our config
        // tell use can't do it
        return("can't find that feedname in web.config")

如何使收藏快速搜索

您可以创建一个具有私有Dictionary成员的静态类。在静态构造函数中访问_Config并执行

public static class Feeds
{
    private static readonly Dictionary<string, FeedElement> feeds;
    static Feeds()
    {
        feeds = new Dictionary<string, FeedElement>();
        var config = ConfigurationManager.GetSection("feedRetriever") as FeedRetrieverSection;
        foreach (FeedElement feed in config.Feeds)
        {
            feeds.Add(feed.Name, feed);
        }
    }
    static public FeedElement GetFeed(string name)
    {
        return feeds[name];
    }
}