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

本文关键字:自定义 结构 列表 存储 检索 | 更新日期: 2023-09-27 18:23:53

我在使用自定义结构将项目存储和检索到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 

我做错了什么?

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

您想要列表中第一个项目的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