Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/260.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 检查对象列表是否包含属性_C#_Visual Studio 2010_Visual Studio_C# 4.0_C# 3.0 - Fatal编程技术网

C# 检查对象列表是否包含属性

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,

嗨,我有一个对象列表,我需要找出我的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, 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=。。。