如何遍历模型以在 MVC 中找到相似的值

how to iterate through model to find similar value in MVC

我正在尝试实施分配 IP 系统,其中 MVC 网络应用程序的管理员可以分配 IP 地址,这些地址实际上可以识别 locations/Workstations,如下图所示

现在,我希望将此用户分配的 IP 与打开 MVC 应用程序的机器的 IP 进行比较,以便从该 IP 地址发送的任何数据都具有指定的位置。 我在想也许是一种搜索或迭代并找到匹配的 IP 地址的方法,我已经尝试在下面实现它但坚持如何迭代并找到匹配项

    public static string LocationIPAssign()
    {
        var model = new Location();

        string workstationLocation = ServerIPName();
        foreach (Location location in model.Locations) // ICollection<Location>, IList<Location>
        {
            if (location.AssignedIP == workstationLocation)
            {
                // do whatever you have to do with your locationToAssign
            }
        }
        return workstationLocation;
    }
}

如有任何提示或想法,我们将不胜感激

如果您需要任何进一步的代码,我很乐意提供帮助

已更新 位置模型

[Table("Location")]
public partial class Location
{
    [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2214:DoNotCallOverridableMethodsInConstructors")]
    public Location()
    {
        Jobs = new HashSet<Job>();
    }

    public int LocationID { get; set; }

    [Required]
    [StringLength(30)]
    [Display(Name = "Location Name")]
    public string LocationName { get; set; }

    [RegularExpression(@"^(?:[0-9]{1,3}\.){3}[0-9]{1,3}$", ErrorMessage = "Invalid IP Address")]
    public string AssignedIP { get; set; }

    [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2227:CollectionPropertiesShouldBeReadOnly")]
    public virtual ICollection<Job> Jobs { get; set; }
    public  ICollection<Location> Locations { get; set; }

}

只需遍历 collection/list 并找到工作站位置:

public static string LocationIPAssign(Location locationToAssign)  
{ 
    string workstationLocation = ComputerIPName();
    foreach(Location location in Locations) // ICollection<Location>, IList<Location>
    { 
        if(location.AssignedIP == workstationLocation) 
        {
            // do whatever you have to do with your locationToAssign
        }
    }
    return workstationLocation;
}

你也可以使用Lambda表达式。

Locations.where( location => location.AssignedIP == workstationLocation );