无法初始化类型xy不实现'System.Collections.IEnumerable'

时间:2016-07-05 17:38:38

标签: c#

我有以下代码

public Response GetDate(Request request)
{
    Details details = new Details();
    Response response = new Response
    {
        details.GetAction(request.CreationDate,request.LineOfBusiness,request.DocumentCategory,request.TransactionFlow,request.BundleName),
    };
    return response;
}

并且班级有

[DataContract]
public class Request
{
    [DataMember(Order = 1)]
    public DateTime CreationDate { get; set; }
    [DataMember(Order = 2)]
    public string LineOfBusiness { get; set; }
    [DataMember(Order = 3)]
    public string DocumentCategory { get; set; }
    [DataMember(Order = 4)]
    public string TransactionFlow { get; set; }
    [DataMember(Order = 5)]
    public string BundleName { get; set; }
}

我收到的错误是集合没有实现System.Collections.IEnumerable。我检查了其他类似的问题。但我没有使用任何LINQ。

2 个答案:

答案 0 :(得分:3)

这是集合初始化程序的语法。

Response response = new Response
{
    details.GetAction(...),
};

回应是对象。

您可能想要调用Response构造函数。

new Response(...);

或者使用对象初始化程序,语法为:

new Response {Property = Value}

答案 1 :(得分:3)

您正在使用Response对象的集合初始值设定项语法,但它没有实现IEnumerable

或者,您没有打算使用集合intitializer语法,并且您打算使用对象intitializer语法,如下所示:

Response response = new Response
{
    SomeProperty= details.GetAction(request.CreationDate,request.LineOfBusiness,request.DocumentCategory,request.TransactionFlow,request.BundleName)
};

或者,您需要在IEnumerable对象上实施AddResponse方法。