使用泛型类型';System.Collections.Generic.List<;T>';需要1个类

本文关键字:lt gt 1个类 List 需要 Collections 泛型类型 System Generic | 更新日期: 2023-09-27 18:26:52

我有两个方法,它们是这里的代码http://www.rajbandi.net/fixing-ssrs-report-viewer-control-date-picker-in-google-chrome/#comment-988,然后我将以下代码应用到我的项目中,我遇到了一个问题。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data;
using System.Data.SqlClient;
using Microsoft.Reporting.WebForms;
using System.Configuration;
using System.Web.SessionState;
using RLISDev.Models;
using RLISDev.BaseObjects;
using System.Web.Mvc;
using RLISDev.Extensions;
using RLISDev.Annotations;
using System.Collections;
protected override void OnPreRender(EventArgs e) {
    base.OnPreRender(e);
    DatePicker1.Value = string.Join(",", (new > List(GetDateParameters()).ToArray()));
}
private IEnumerable GetDateParameters() {
    // I'm assuming report view control id 
    // as reportViewer
    foreach(ReportParameterInfo info in
        ReportViewer1.ServerReport.GetParameters()) {
        if (info.DataType ==
            ParameterDataType.DateTime) {
            yield
            return string.Format("[{0}]",
                info.Prompt);
        }
    }
}

我这里有错误

List(GetDateParameters()).ToArray())使用泛型类型"System.Collections.Generic.List"需要1个类型参数

我不确定我错过了什么。

使用泛型类型';System.Collections.Generic.List<;T>';需要1个类

您必须给它一个类型参数,因为它是一个泛型类:

var test = new List<DateTime>();

取决于GetDateParameters()的返回类型;你想要这样的东西:

DatePicker1.Value = string.Join(",", (new List<DateTime>(GetDateParameters()).ToArray()));

注意:我修改了我的代码

protected override void OnPreRender(EventArgs e) {
     base.OnPreRender(e);
     DatePicker1.Value = string.Join(",", (GetDateParameters().ToList().ToArray()));
 }
 private IEnumerable < string > GetDateParameters() {
     // I'm assuming report view control id as reportViewer
     foreach(ReportParameterInfo info in ReportViewer1.ServerReport.GetParameters()) {
         if (info.DataType == ParameterDataType.DateTime) {
             yield return string.Format("[{0}]", info.Prompt);
         }
     }
 }

这是有效的。