使用datarow字段填充对象列表

时间:2013-04-04 14:47:28

标签: c# asynchronous datatable

我想知道使用DataTable数据填充对象列表的最快和最佳实践方法是什么

目前我正在使用这种方法:

对象:

public class Car
{
    public int CarId { get; set; }
    public string CarName { get; set; }
    public Car(DataRow row)
    {
        if (row != null)
        {
            this.CarId = Convert.ToInt32(row["car_id"]);
            this.CarName = row["car_name"].ToString();
        }
    }
}

转换:

public List<Car> GetCars(DataTable carTable)
    {
        return carTable.Select().SelectAsync(c => new Car(c)).ToList();
    }

和async扩展名:

public static IEnumerable<S> SelectAsync<T, S>(this IEnumerable<T> query, Func<T, S> expression)
    {
        TaskFactory<S> tasks = new TaskFactory<S>();
        foreach (var item in query)
        {
            yield return tasks.StartNew(() => expression(item)).Result;
        }
    }

我知道我可以使用“AsParallel”,但是从我做过的测试来看,这种方法稍快一点

但是,有人可以帮助我找到更快的方法吗? 是否有设计模式?

谢谢

0 个答案:

没有答案