我有以下代码:
private List<Car> Fleet = new List<Car>()
{
new Car("Toyota", "Corola","YI348J", 2007, 7382.33),
new Car("Renault", "Megane","ZIEKJ", 2001, 1738.30),
new Car("Fiat", "Punto","IUE748", 2004, 3829.33)
};
public void addToFleet(String make, String model, String registration, int year, Double costPrice)
{
Fleet.Add(new Car(make, model, registration, year, costPrice));
}
在将新的Car对象添加到Fleet列表之前,我需要检查&#39;注册&#39;并不存在作为列表中任何Car对象的属性。此检查需要使用LINQ并在addToFleet方法中。
答案 0 :(得分:5)
假设您的Car类有一个属性注册:
private List<Car> Fleet = new List<Car>()
{
new Car("Toyota", "Corola","YI348J", 2007, 7382.33),
new Car("Renault", "Megane","ZIEKJ", 2001, 1738.30),
new Car("Fiat", "Punto","IUE748", 2004, 3829.33)
};
public void addToFleet(String make, String model, String registration, int year, Double costPrice)
{
if(Fleet.Any(car => car.Registration == registration))
{
// already in there
}
else
{
Fleet.Add(new Car(make, model, registration, year, costPrice));
}
}
答案 1 :(得分:1)
只需检查是否有Any
辆车的注册符合通过的注册。如果不是Add
。
public void addToFleet(String make, String model, String registration, int year, Double costPrice)
{
if (!Fleet.Any(x => x.Registration.ToLower() == registration.ToLower()))
Fleet.Add(new Car(make, model, registration, year, costPrice));
}
我将注册转换为较低,以便字符串大小写成为问题。 LINQ或Lambda表达式。没关系。 LINQ由编译器转换为lambda。
答案 2 :(得分:-1)
首先,您应该知道如何使用LINQ进行搜索。
SearchAdapter包含核心搜索功能,负责根据用户输入的搜索条件选择数据。课堂上有三种方法和一种属性。该类外部唯一可用的适配器是PerformSearch方法,它是程序集内部的。
Read这是教程。