C# 检查对象列表是否包含属性
嗨,我有一个对象列表,我需要找出我的id是否已经在列表中。在object类中,我已经设置了id,我只想知道在Ui中输入的id是否已经在使用中 班级C# 检查对象列表是否包含属性,c#,visual-studio-2010,visual-studio,c#-4.0,c#-3.0,C#,Visual Studio 2010,Visual Studio,C# 4.0,C# 3.0,嗨,我有一个对象列表,我需要找出我的id是否已经在列表中。在object类中,我已经设置了id,我只想知道在Ui中输入的id是否已经在使用中 班级 class Product { private string name = ""; private int id = 0; private decimal Pvalue = 0.00m; private static int lastId = 1; public Product(string namep,
class Product
{
private string name = "";
private int id = 0;
private decimal Pvalue = 0.00m;
private static int lastId = 1;
public Product(string namep, decimal valuep)
{
this.name = namep;
this.id = lastId++;
this.Pvalue = valuep;
}
public override string ToString()
{
return name + " " + id + " "+ Pvalue;
}
public bool Equals(Product p)
{
return (p.id == this.id);
}
}
我正在努力解决这个问题:
int id;
bool test = int.TryParse(textBoxId.Text, out id);
if(test)
{
if(Inv.Contains(id))
{
label2.Text = "you already have this id";
}else
{
label2.Text = "you can use this id";
}
}
如果有人知道为什么这样做不起作用,或者有更好的方法,那就省去我的后顾之忧,谢谢。Change
private int id=0
到公共int-Id{get;set;}
。另外,将所有引用从id
更改为id
使用System.Linq将添加到业务逻辑文件中
将if(Inv.Contains(id))
更改为if(Inv.Any(x=>x.id==id))
更改private int id=0
到公共int-Id{get;set;}
。另外,将所有引用从id
更改为id
使用System.Linq将添加到业务逻辑文件中
将if(Inv.Contains(id))
更改为if(Inv.Any(x=>x.id==id))
谢谢您的帮助,但我还是得到了同样的结果“object不包含id的定义”我假设Inv
引用了某种包含产品实例的集合。需要以上代码才能工作:IEnumerable Inv=…感谢您的帮助,但我仍然得到相同的结果“object不包含Id的定义”我假设Inv
指的是某种包含产品实例的集合。要使上述代码正常工作,需要这样做:IEnumerable Inv=。。。