通过 IEnumerable 进行迭代以填充 List MVC C#

本文关键字:填充 List DTO MVC IEnumerable String 通过 迭代 | 更新日期: 2023-09-27 18:31:45

任何人都可以帮助解决我遇到的问题,我正在尝试编写一个将返回我的 DTO 对象列表的方法

我正在通过usrCode获取用户,并在数据库中获取其工作代码的列表。 然后,我从WCF获得所有作业的列表。然后我想创建一个新列表,其中 jobDescription 附加了 DTO,因为数据库只有用户代码和工作代码。 我想要的是来自我的 WCF 的 JobDescription 列表,但来自用户没有的作业列表。通过这个....

List<UserJobsDTO> list = listBuilder(jobs, yetToHave);

目前我只有这个,我已经设法获得了用户没有的工作代码列表,但我需要工作描述...... 谁能帮我完成我的方法?

 public ActionResult addJob(string usrCode)
    {
        var jobs = jobsClient.GetAlljobs();
        var alljobsCode = (from s in jobs select s.jobsCode).ToList();
        var thisUserJobCode = (from s in db.UserJobs
                                   where s.usrCode == usrCode
                                   select s.jobsCode).ToList(); 
        var yetToHave = alljobsCode.Except(thisUserJobCode);
        List<UserJobsDTO> list = listBuilder(jobs, yetToHave);
        ViewBag.jobsCode = new SelectList(list, "jobsCode", "jobDescription");
        var model = new UserJob { usrCode = usrCode };
        return View("addJob", model);
    }
    private List<UserJobsDTO> listBuilder(jobsService.jobsDTO[] jobs, IEnumerable<string> yetToHave)
    {
        foreach (string s in yetToHave)
        {
           for every yetToHave job
           attach description to UserJobsDTO.Description
        }
    }

DTO:

public class UserJobsDTO
{
    public String userCode { get; set; }
    public String jobsCode { get; set; }
    public String jobDescription { get; set; }
}

通过 IEnumerable<String> 进行迭代以填充 List<DTO> MVC C#

您可以将

LINQ Contains 方法与 ! 一起使用(这意味着不包含

假设jobsClient.GetAlljobs()返回UserJobsDTO DTO 的集合。

//Get all Jobs
var allJobs = jobsClient.GetAlljobs().ToList();
//Get a list of Job code this user
var thisUsersJobCodeList = (from s in db.UserJobs where s.usrCode == usrCode
                               select s.jobsCode).ToList(); 
//Get items from all jobs except the items in thisUsersJobCodeList 
var yetToHave = allJobs.Where(s => !thisUsersJobCodeList .Contains(s.jobsCode)).ToList();
//Convert to a List<SelectListItem> for dropdown
var dropDownData = yetToHave.Select(s => new SelectListItem 
                                 { Value = s.jobsCode, Text = s.jobDescription}).ToList();
ViewBag.jobsCode = dropDownData;
相关文章: