У меня есть две идентичные коллекции: 1, которая передается в представление, а другая, которая хранится в сеансе перед отображением представления.Сравнение двух коллекций с linq и переменной заполнения
Мы используем скрытые поля в представлении, внутри этих скрытых полей находится SenderId. Когда пользователь отправляет страницу, я хочу сравнить предоставленные SenderId с SenderId в коллекции Session и заполнить переменную с идентификаторами, которые не совпадают (что означало бы, что пользователь вмешался в скрытые поля)
Это это то, что я в настоящее время:
var storedValues = (List<MailBox>)Session["Mail"];
var noMatch = (from x in model where storedValues.Any(s => s.SenderId != x.SenderId) select x.SenderId).ToList();
Но независимо от того, что я делаю это всегда выбирает все из них, даже если я изменю SenderId на представлении и при отладке я вижу SenderId, которые я подделаны, я могу 't для жизни меня получить переменную noMatch для заполнения неправильным SenderId, с которым я вмешался.
Любая помощь будет оценена по достоинству.
Update Декларация модели:
public class MailBox
{
public Int64 SenderId { get; set; }
public Int64 RecipientId { get; set; }
public string Username { get; set; }
public int TotalMessages { get; set; }
public string PhotoId { get; set; }
public bool NewMessages { get; set; }
public DateTime LastLoggedIn { get; set; }
public DateTime LatestEmailDate { get; set; }
public bool LoggedIn { get; set; }
public string Message { get; set; }
public bool Delete { get; set; }
}
Я бы попробовать другой синтаксис, как: storedValues.Where (x => x.SenderId! = s.SenderId) –
@SebastianL Я пробовал это, но получаю ошибку: аргумент не присваивается типу параметра bool –
Пожалуйста, покажите, как определяется модель. – Kapol