C# 如何修复错误';参数1:无法从';字符串';至';PassTask13_新客户';不使用LINQ
我试图做的是让用户删除他们想要的客户帐户。以下是我在main中设置的“customer account”的值,其格式为customer类中的new customer(_custName、_purchase、_status):C# 如何修复错误';参数1:无法从';字符串';至';PassTask13_新客户';不使用LINQ,c#,C#,我试图做的是让用户删除他们想要的客户帐户。以下是我在main中设置的“customer account”的值,其格式为customer类中的new customer(_custName、_purchase、_status): Customer[] customers = { new Customer("Mary", 20, Status.NonMember), new Customer("Adam", 30, Status.Memb
Customer[] customers =
{
new Customer("Mary", 20, Status.NonMember),
new Customer("Adam", 30, Status.Member),
new Customer("Natasha", 50, Status.Member)
};
这是我为main中调用的remove方法键入的代码:
Console.Write("\nEnter the customer's name that you want to remove: ");
string name = Console.ReadLine();
foreach(Customer c in a.CustomerList)
{
if(a.CustomerList.Contains(name)) //error is at here the 'name'
{
a.DeleteCustAccount(c);
}
}
我使用Contain()在列表中搜索匹配的客户名称并将其删除,因为如果我使用index,用户需要输入“0”来删除第一个“客户帐户”,这可能会让他们中的一些人感到困惑。我对C#编程还是新手,我不确定如何解决这个问题。有人能帮你提个建议吗?你需要指定它应该寻找匹配的属性 我试图说明您的问题,这段代码应该会有所帮助
class Customer
{
public Customer(string custName, decimal purchase, Status status)
{
this.custName = custName;
this.purchase = purchase;
this.status = status;
}
public string custName { get; set; }
public decimal purchase { get; set; }
public Status status { get; set; }
}
enum Status
{
Member, NonMember
}
class Program
{
private static void Main()
{
Customer[] customers = new Customer[]
{
new Customer("Mary", 20, Status.NonMember),
new Customer("Adam", 30, Status.Member),
new Customer("Natasha", 50, Status.Member)
};
string name = "Mary";
foreach (var c in customers)
{
if (c.custName.Contains(name))
{
Console.WriteLine("Do something");
}
}
}
}
不能将不同类型的对象与包含对象进行比较。所以你可以用Where或者选择metod来检查。例如:Where metod using必须如下所示:if(a.CustomerList.Where(x=>x.CustName==name.Count()>0)