1

样本类:

public class ProductData
{
    private Guid ProductID { get; set; }
    private string ProductDescription { get; set; }

    public ProductData(Guid pID, string pDescription)
    {
        this.ProductID = pID;
        this.ProductDescription = pDescription;
    }
}

创建 ProductData 列表:

    private static List<ProductData> GetProductDataList()
    {
        // code to populate DataSet ds here

        DataTable dtReport = ds.Tables[0];
        List<AssetData> lstProductData = new List<ProductData>();
        int index = 1;
        foreach (DataRow row in dtReport.Rows)
        {
            lstProductData.Add(new ProductData(new Guid(row["ProductID"].ToString()), row["Product"].ToString()));
            index++;
        }

        return lstProductData.ToList();
    }

代码可以正常工作并且符合预期。但是,我认为使用 LINQ 可以避免foreach 循环。出于各种原因,我尝试尽可能多地使用 LINQ(看起来更简洁的代码是原因之一 - 如果我错了,请纠正我)。

有什么方法可以使用 LINQ 和最少的代码实现与上述相同的事情。

4

1 回答 1

3

这可以使用Selectand来完成ToList

var lstProductData = dtReport.Rows.Cast<DataRow>()
    .Select(row => new ProductData(new Guid(row["ProductID"].ToString())
        , row["Product"].ToString()))
    .ToList();
于 2013-08-14T20:29:36.053 回答