如何将以下逻辑转换为LINQ?
Flaggedlist
是一种List<string>
。 request.flagged
是请求POCO中的数值。
if (request.Flagged == 1)
{
if (!patient.UserFlaggedList.Contains(request.UserId))
{
flaggedList.Add(request.UserId);
}
}
else if (request.Flagged == 0)
{
string usrid = flaggedList.Where(a => a == request.UserId).FirstOrDefault<string>();
flaggedList.Remove(usrid);
}
答案 0 :(得分:0)
这非常简洁明了,不确定为什么你想让它更加浓缩。 如果你真的想缩短它,也许你可以这样做:
if (request.Flagged == 1 && !patient.UserFlaggedList.Contains(request.UserId))
{
flaggedList.Add(request.UserId);
}
else if (request.Flagged == 0)
{
flaggedList.Remove(flaggedList.Where(a => a == request.UserId).FirstOrDefault<string>());
}
答案 1 :(得分:0)
它可归结为两个简单的IF语句,第二部分仍然进一步缩短:
if (request.Flagged == 1 && !patient.UserFlaggedList.Contains(request.UserId))
flaggedList.Add(request.UserId);
if (request.Flagged == 0)
flaggedList.Remove(flaggedList.FirstOrDefault(a => a == request.UserId));