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);
}

只有当 IsWiFiSSIDEnabledtrue 时才会检查 userLocation

全部使用

if (IsWiFiSSIDEnabled && userLocation.LocationWiFiSSIDs.All(x => x.WiFiSSID != attendanceDto.WiFiSSID)
{
    throw new ApplicationException(ErrorMessages.InvalidWiFiSSID);
}