使用foreach遍历列表

时间:2019-05-09 00:38:29

标签: asp.net c#-2.0

我有一个项目,要求我填写用户信息以及他们的个人信息。 到目前为止,我能够遍历用户和个人信息的列表,但无法填充空值。

例如:

public List<UserDetailModel> UserInformation()
{
    List<UserDetailModel> userdetails = new List<UserDetailModel>();

    var user = _context.User.Where(x => x.Id > 0).ToList()

    foreach(var item in user)
    {
        var personaldetails = _context.PersonalDetails.Where(x => item.PId == x.PId).ToList();

        foreach (var item2 in personaldetails)
        {
            UserDetailModel userModel = new UserDetailModel();

            userModel.UserId = item.UserId;
            userModel.Name = item.UserName;
            userModel.PhoneNumber = item.Number;

            userModel.CreditCardNumber = item2.CCNumber;
            userModel.SIN = item2.SinNumber;

            userdetails.Add(userModel);
        }
    }
    return userdetails;
}

我期望的是:

"userId": 1,
"name": "john"
"phoneNUmber": 123-123-1234,
"creditCardNumber": 44455544445554545,
"sin": 9589898568

"userId": 1,
"name": "john"
"phoneNUmber": ,
"creditCardNumber": 44455544445554545,
"sin": 9589898568


"userId": 1,
"name": "john"
"phoneNUmber": 123-123-1234,
"creditCardNumber": ,
"sin": 9589898568


"userId": 1,
"name": "john"
"phoneNUmber": 123-123-1234,
"creditCardNumber": 44455544445554545,
"sin": 

但是我在上面的代码中得到的是:

"userId": 1,
"name": "john"
"phoneNUmber": 123-123-1234,
"creditCardNumber": 44455544445554545,
"sin": 9589898568

如何获取所有用户及其空值?

1 个答案:

答案 0 :(得分:0)

我猜想逻辑没有正确实现,似乎不需要两个循环,

Public List<UserDetailModel> UserInformation(){

List<UserDetailModel> userdetails = new List<UserDetailModel>();

var user = (from user in _context.User 
           join personal in _context.PersonalDetails 
           on user.PId equals personal.PId 
           Where user.Id>0).ToList();

foreach(var item in user)
{
     UserDetailModel userModel = new UserDetailModel();

        userModel.UserId = item.UserId;
        userModel.Name = item.UserName;
        userModel.PhoneNumber = item.Number;

        userModel.CreditCardNumber = item2.CCNumber;
        userModel.SIN = item2.SinNumber;

        userdetails.Add(userModel);
}

因此,如果个人详细信息为null,则不会进入循环。