Перебирая список с помощью foreach - PullRequest
0 голосов
/ 09 мая 2019

У меня есть проект, который требует, чтобы я заполнял информацию о пользователях вместе с их личной информацией. До сих пор мне удавалось просматривать список пользователей и личную информацию, но я не мог заполнить нулевые значения.

Например:

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 голосов
/ 09 мая 2019

Я полагаю, логика не была реализована правильно, кажется, что два цикла не требуются,

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);
}

Так что, когда личные данные обнуляются, они не будут введены в цикл.

...