如何从List <customobject>中获取数据

时间:2017-02-21 14:34:36

标签: c# list

  

严重级代码描述项目文件行抑制状态

     

错误CS0030无法将类型'System.Collections.Generic.List'转换为'Calendar.CalendarModel'

private void findManagerForSelectedDate(String dateSelected)
{
    List<String> managerNames = new List<String>();
    foreach(var item in managers)
    {
        CalendarModel c = item;
        Console.WriteLine(c.date);
    }
}

基本上我想将作为参数传入的日期与“经理”列表

中的日期相匹配

Managers变量声明为

private List<List<CalendarModel>> managers = new List<List<CalendarModel>>();

我的CalendarModel定义为

namespace Calendar
{
    class CalendarModel
    {
        [JsonProperty("name")]
        public string name { get; set; }

        [JsonProperty("date")]
        public string date { get; set; }

显然,我的代码与日期匹配尚未实现。我无法从列表中获取日期

2 个答案:

答案 0 :(得分:1)

'managers'字段是CalendarModel列表的列表:

List<List<CalendarModel>>

但是你在foreach循环中将'CalendarModel'列表'转换为CalendarModel。

    foreach(var item in managers)
    {
        CalendarModel c = item; // 'item' is List<CalendarModel>, but you cast it to CalendarModel.
        Console.WriteLine(c.date);
    }

您可以将“经理”字段的类型更改为:

List<CalendarModel> managers = new List<CalendarModel>();

或使用2个foreach循环:

        foreach(var item in managers)
        {
            foreach(var subitem in item)
            {
                CalendarModel c = subitem;
                Console.WriteLine(c.date);
            }
        }

答案 1 :(得分:0)

问题在于您的foreach循环item属于List<CalendarModel>类型,您可以使用另一个foreach循环来访问该列表中每个date的{​​{1}}属性。

CalendarModel