从具有自定义结构的列表存储和检索

时间:2012-02-10 00:12:16

标签: c#

我在使用自定义结构将项目存储和检索到list<>时遇到了一些问题。

我的结构如下:

public class list_rss_parameters
{
    public string this_string { get; set; }
    public string title_start { get; set; }
    public string title_end { get; set; }
    public string description_start { get; set; }
    public string description_end { get; set; }
    public string link_start { get; set; }
    public string link_end { get; set; }
    public string publish_date_start { get; set; }
    public string publish_date_end { get; set; }
    public string author_start { get; set; }
    public string author_end { get; set; }
}

我的存储过程看起来像这样(并注意变量名称与自定义键名称相同)这可以吗?

        //this is the last part of a custom method that returns a list
        List<list_rss_parameters> list_rss_items = new List<list_rss_parameters>();
        list_rss_items.Add(new list_rss_parameters()
        {
            this_string = this_string,
            title_start = title_start,
            title_end = title_end,
            description_start = description_start,
            description_end = description_end,
            link_start = link_start,
            link_end = link_end,
            publish_date_start = publish_date_start,
            publish_date_end = publish_date_end,
            author_start = author_start,
            author_end = author_end
        });

        return list_rss_items;

如果以上两种设置都正确,我退回后如何将项目从列表中拉出来?

        List<list_rss_parameters> list_rss_parameters = new List<list_rss_parameters>();
        list_rss_parameters = f_discover_rss_parameters(rss);
        show(list_rss_parameters.Count.ToString());
        show(list_rss_parameters[0].ToString()); //does not show this_string 
        show(list_rss_parameters[this_string'] //does not show this_string 
        show(list_rss_parameters[0][this_string'];//does not show this_string 

我做错了什么?

1 个答案:

答案 0 :(得分:2)

您想要列表中第一项的this_string属性:

show(list_rss_parameters[0].this_string);

或显示所有这些:

foreach(var item in list_rss_parameters)
{ 
   Console.WriteLine(item.this_string);
}

作为旁注,您的属性名称与.NET中属性的PascalCase命名约定不匹配 - 因此this_string确实应该是ThisString