如何遍历模型以在 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 );
我正在尝试实施分配 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 );