如何将参数传递给Converter <datarow,t =“”>?</datarow,>

时间:2013-07-30 12:30:45

标签: c# list dataset

我有一个将数据集转换为列表的通用方法。

public static List<T> ConvertDS<T>(DataSet ds, Converter<DataRow, T> converter)
        {
            return
                (from row in ds.Tables[0].AsEnumerable()
                 select converter(row)).ToList();
        }

但我不知道如何在上面的函数中将参数传递给“converter”。 我有这样的列表AddressInfo

List<AddressInfo> lstAddressInfo = new List<AddressInfo>();

lstAddressInfo =ConvertDS(ds,"What to send here")

2 个答案:

答案 0 :(得分:0)

试试这个:

lstAddressInfo =ConvertDS(ds, convert)

public static AddressInfo convert (DataRow data)
{
 //function converting data
}

您需要指定将DataRow转换为AddressInfo并将其传递给新Converter的方法

编辑为shambulator,James建议

答案 1 :(得分:0)

鉴于Converter<TIn, TOut>是委托,则以下内容应该有效:

lstAddressInfo =ConvertDS(ds, (row) => {
    return new AddressInfo
    {
        Property1 = row["PropertyA"],
        ...
    };
});