访问 IList 类型的特定项目<T>



我正在尝试访问iList的特定数据。

public static void export(IList<T> data){
var test = data[1];
var x = test.day;
}

这是我所获得的作为VAR测试的价值和类型:测试值和类型

即使将类型设置为我的模型的类型,代码将其视为T。我如何访问"日"值?

这是我的第一篇文章,很抱歉,如果有些问题不好,请提前。

善意。

您怎么知道T实际上具有day属性?T可能是什么。如果您期望列表包含所有workingHoursDbXls对象,那么我建议不要使此方法通用:

public static void export(IList<workingHoursDbXls> data)
{
    var test = data[1];
    var x = test.day;
}

另外,您可以指定一些约束,以说您不在乎哪种类型T,只要它具有day属性:

public interface IHaveADay
{
    string day { get; }
}
public static void export<T>(IList<T> data) where T : IHaveADay
{
    var test = data[1];
    var x = test.day;
}

然后,您需要更新workingHoursDbXls类的声明,以说它实现IHaveADay

public class workingHoursDbXls : IHaveADay
{
    ...
}

如果访问 day属性,则该方法只能与具有该属性的对象一起使用,并且只有将t限制到曝光它的接口时。

public static void export<T>(IList<T> data) where T: workingHoursDbXls
{
    var test = data[1];
    var x = test.day;
}

最新更新