LinQ 项目存在验证
LinQ Item Present Validation
目前我这样做是为了验证列表中是否存在某个项目
var wifiSSID = userLocation.LocationWiFiSSIDs.Where(x => x.WiFiSSID == attendanceDto.WiFiSSID).FirstOrDefault();
if (IsWiFiSSIDEnabled && wifiSSID == null)
{
throw new ApplicationException(ErrorMessages.InvalidWiFiSSID);
}
我可以用更好的方式写这个吗?有任何或包含?
假设wifiSSID
只是在你的代码中用于验证,那么你可以使用Any()
如下:
if (IsWiFiSSIDEnabled && !userLocation.LocationWiFiSSIDs.Any(x => x.WiFiSSID == attendanceDto.WiFiSSID)
{
throw new ApplicationException(ErrorMessages.InvalidWiFiSSID);
}
只有当 IsWiFiSSIDEnabled
为 true
时才会检查 userLocation
。
全部使用
if (IsWiFiSSIDEnabled && userLocation.LocationWiFiSSIDs.All(x => x.WiFiSSID != attendanceDto.WiFiSSID)
{
throw new ApplicationException(ErrorMessages.InvalidWiFiSSID);
}
目前我这样做是为了验证列表中是否存在某个项目
var wifiSSID = userLocation.LocationWiFiSSIDs.Where(x => x.WiFiSSID == attendanceDto.WiFiSSID).FirstOrDefault();
if (IsWiFiSSIDEnabled && wifiSSID == null)
{
throw new ApplicationException(ErrorMessages.InvalidWiFiSSID);
}
我可以用更好的方式写这个吗?有任何或包含?
假设wifiSSID
只是在你的代码中用于验证,那么你可以使用Any()
如下:
if (IsWiFiSSIDEnabled && !userLocation.LocationWiFiSSIDs.Any(x => x.WiFiSSID == attendanceDto.WiFiSSID)
{
throw new ApplicationException(ErrorMessages.InvalidWiFiSSID);
}
只有当 IsWiFiSSIDEnabled
为 true
时才会检查 userLocation
。
全部使用
if (IsWiFiSSIDEnabled && userLocation.LocationWiFiSSIDs.All(x => x.WiFiSSID != attendanceDto.WiFiSSID)
{
throw new ApplicationException(ErrorMessages.InvalidWiFiSSID);
}