用linq压缩这个逻辑
本文关键字:linq 压缩 | 更新日期: 2024-10-18 12:27:07
如何将以下逻辑转换为LINQ?
CCD_ 1是CCD_。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);
}
它可以归结为两个简单的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));
这是非常精简和清晰的,不确定为什么要让它更精简。如果你真的想缩短它,也许你可以这样做:
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>());
}