首页上一页 1 下一页尾页 2 条记录 1/1页
List用法
发表在C#图书答疑
2014-07-14
是否精华
是
否
版块置顶:
是
否
问题源自《c_#经典编程220例》->《第19章 c#语言新技术》->《实例210 检查序列中是否包含指定元素》。
实例中定义了一个类Person:
public class Person
{
public Person(int id, string name)
{
this.ID = id;
this.Name = name;
}
public int ID { get; set; }//人员ID
public string Name { get; set; }//人员名称
}
然后窗体运行时调用该类:
private void Frm_Main_Load(object sender, EventArgs e)
{
List<Person> People = new List<Person>();//创建人员列表
for (int i = 1; i < 10; i++)
{
People.Add(new Person(i, "User0" + i.ToString()));
}
bool result = People.Contains(new Person(3, "User03"));//检查序列是否包含指定元素
label1.Text = "数据源:People(包含9个元素,元素的ID值分别为1、2、3、......、9)";//数据源
label2.Text = "查询表达式:Contains(new Person(3,\"User03\"))";//查询表达式/操作
label3.Text = "查询结果:"+result.ToString();//查询结果
}
按说明的意思应该是会返回一个TRUE,但实际上返回的是FALSE。
经测试发现:
List<Person> Pe = new List<Person>();//创建人员列表
Person p = new Person(3, "User03");
Pe.Add(p);
bool pr = Pe.Contains(p);//检查序列是否包含指定元素,此处=true
Person p1 = new Person(3, "User03");
bool re = Pe.Contains(p1);//检查序列是否包含指定元素,此处=false
求解释
实例中定义了一个类Person:
public class Person
{
public Person(int id, string name)
{
this.ID = id;
this.Name = name;
}
public int ID { get; set; }//人员ID
public string Name { get; set; }//人员名称
}
然后窗体运行时调用该类:
private void Frm_Main_Load(object sender, EventArgs e)
{
List<Person> People = new List<Person>();//创建人员列表
for (int i = 1; i < 10; i++)
{
People.Add(new Person(i, "User0" + i.ToString()));
}
bool result = People.Contains(new Person(3, "User03"));//检查序列是否包含指定元素
label1.Text = "数据源:People(包含9个元素,元素的ID值分别为1、2、3、......、9)";//数据源
label2.Text = "查询表达式:Contains(new Person(3,\"User03\"))";//查询表达式/操作
label3.Text = "查询结果:"+result.ToString();//查询结果
}
按说明的意思应该是会返回一个TRUE,但实际上返回的是FALSE。
经测试发现:
List<Person> Pe = new List<Person>();//创建人员列表
Person p = new Person(3, "User03");
Pe.Add(p);
bool pr = Pe.Contains(p);//检查序列是否包含指定元素,此处=true
Person p1 = new Person(3, "User03");
bool re = Pe.Contains(p1);//检查序列是否包含指定元素,此处=false
求解释