我有 2 个要比较的列表。
列出 SelectedPersonCodes;只是一个字符串列表(显然)
列出当前用户位置;是 LocationId、LocationName 对的列表。
我需要查看是否有任何 CurrentUserLocation locationIds 在由 locationIds 组成的 SelectedPersonCOdes 列表中匹配。
我把这个放在一起:
public JsonResult VerifyDetailAccess(int id)
{
List<UserLocation> CurrentUserLocation = repo.GetUserLocations();
List<string> SelectedPersonLocations = repo.GetTrespassedSiteCodes(id);
bool IsAuth = false;
foreach (var current in CurrentUserLocation)
{
for(var s = 0; s < SelectedPersonLocations.Count(); s++)
{
if(current.LocationCode == SelectedPersonLocations[s])
{
IsAuth = true;
}
}
}
return Json(IsAuth, JsonRequestBehavior.AllowGet);
}
结果总是假的。问题是 if 语句,我没有得到 SelectedPersonLocations 中的值。我如何公开这些值以便我可以迭代它们?
我也尝试过双重foreach:
foreach (var current in CurrentUserLocation)
{
foreach (var select in SelectedPersonLocations)
{
if(current.LocationCode == select)
{
IsAuth = true;
}
}
这会暴露 select 中的值,但即使 current.LocationCode 和 select 相同,它仍然会跳过设置标志,因此 IsAuth 保持为 false。