У меня есть 2 списка объект типа некоторого класса,Как использовать локальные переменные в лямбда-выражения
class person
{
public string id { get; set; }
public string name { get; set; }
}
List<person> pr = new List<person>();
pr.Add(new person { id = "2", name = "rezoan" });
pr.Add(new person { id = "5", name = "marman" });
pr.Add(new person { id = "3", name = "prithibi" });
List<person> tem = new List<person>();
tem.Add(new person { id = "1", name = "rezoan" });
tem.Add(new person { id = "2", name = "marman" });
tem.Add(new person { id = "1", name = "reja" });
tem.Add(new person { id = "3", name = "prithibi" });
tem.Add(new person { id = "3", name = "prithibi" });
Теперь я должен получить все идентификаторы из «пр» ListObject, что не имеет никаких записей или нечетное количество записей в "tem" ListObejct. используя лам.
Для этого я использовал,
HashSet<string> inconsistantIDs = new HashSet<string>(pr.Select(p => p.id).Where(p => tem.FindAll(t => t.id == p).Count == 0 || tem.FindAll(t => t.id == p).Count % 2 != 0));
и она отлично работает.
но вы можете видеть из кода я использовал tem.FindAll (т => t.id == р) .Count дважды comapre с == 0 и % 2! = 0.
Есть ли способ использовать tem.FindAll (т => t.id == р) .Count раз и сохранить его во временную переменную, а затем сравнить эту переменную с == 0 и % 2! = 0.
Проще говоря, я просто хочу использовать его один раз для двух условий здесь.
Пожалуйста, не используйте subjjects как «лицом выпуска в xxx ", это будет ссылка google. –
Got u @TimSchmelter – Rezoan