我下面有这两种方法。一个返回基于手机ID的制造商列表,另一个返回基于手机ID(通过手机ID的关系)的手机列表。如何合并它们以返回合并了制造商手机值的一个选择列表?
(MVC的新手)

SelectList GetManufacturers()
{
        var manufacturers = ((DataPage<Manufacturer>)ViewData["Manufacturers"]).Records;
        return new SelectList(manufacturers, "ID", "Name", ViewData.Model.HandsetID != null ? ViewData.Model.HandsetID : -1);
}

SelectList GetHandsets()
{
    var list = ((DataPage<Handset>)ViewData["Handsets"]).Records;
    return new SelectList(list, "ID", "Name", ViewData.Model.HandsetID != null ? ViewData.Model.HandsetID : -1);
}


非常感谢您的帮助,

亲切的问候

最佳答案

下面的代码应该工作。它对您的两个列表执行内部联接,然后将每个记录的制造商名称和手机名称连接在一起,并在两者之间留一个空格。

var manufacturers = ((DataPage<Manufacturer>)ViewData["Manufacturers"]).Records;
var handsets = ((DataPage<Handset>)ViewData["Handsets"]).Records;

var list =

     from manufacturer in manufacturers
     join handset in handsets on manufacturer.HandsetID equals handset.HandsetID
     select new
     {
         ID = handset.HandsetID,
         Name = manufacturer.Name + " " + handset.Name
     };
return new SelectList(list, "ID", "Name", ViewData.Model.HandsetID != null ? ViewData.Model.HandsetID : -1);

10-05 20:29
查看更多