在列表中添加类的几个属性

时间:2015-02-26 10:14:35

标签: c# linq list

我有一个声明了8个属性的类:

public  class  classProduct
{
    public int iProductID { get; set; }
    public string sPName { get; set; }
    public string sPDescription { get; set; }
    public int iPTypeID { get; set; }
    public string sPPrice { get; set; }
    public string sPType { get; set; }
    public string sImagePath { get; set; }
    public string sDestinationPath { get; set; }
}

我有一个方法,我在列表中添加了4个属性,而ProductDetailsTbls是我的Tbl1,ProductTypeTbls是Tbl2。

public List<classProduct> GetAllProduct()
{ 
    List<classProduct> lst = new List<classProduct>();
    lst = (from c in dc.ProductDetailsTbls
             join d in dc.ProductTypeTbls
             on c.PTypeID equals d.PTypeID
             select new classProduct { sPName=c.PName, sPDescription=c.PDescription, sPPrice=c.PPrice, sPType=d.PType }).ToList();
    return lst;
}

但它会返回我不想要的所有属性。

1 个答案:

答案 0 :(得分:2)

如果您只想要一些属性,我认为您必须引入一个新类。

我的方法是用你的四个属性定义一个基类,然后你可以classProduct继承它。

你的基类看起来像是:

public class baseClassProduct
{
    public string sPName { get; set; }
    public string sPDescription { get; set; }
    public string sPPrice { get; set; }
    public string sPType { get; set; }
}

和您的classProduct:

public class classProduct : baseClassProduct
{
    public int iProductID { get; set; }
    public int iPTypeID { get; set; }
    public string sImagePath { get; set; }
    public string sDestinationPath { get; set; }
}

在你的GetAllProduct-Method中,你可以使用baseClass,你只能得到你想要的信息。

public List<baseClassProduct> GetAllProduct()
{ 
    List<baseClassProduct> lst = new List<baseClassProduct>();
    lst = (from c in dc.ProductDetailsTbls
             join d in dc.ProductTypeTbls
             on c.PTypeID equals d.PTypeID
             select new baseClassProduct { sPName=c.PName, sPDescription=c.PDescription, sPPrice=c.PPrice, sPType=d.PType }).ToList();
   return lst;
}