查找班级索引:
我知道找到List索引的唯一方法是
int index = listEmployee.FindIndex(
delegate(Employee findEmployee)
{
return findEmployee.Name.Equals(findName, StringComparison.Ordinal);
});
我想知道如何添加使用
的选项int indexT = listEmployee.FindIndex(r >= r.Name == findName);
或者基本上我做错了,我不能使用它。
class Employee
{
private string _name; private int _idNumber;
private string _deptarment; private string _position;
public Employee()
{
_name = ""; _idNumber = 0; _deptarment = ""; _position = "";
}
public string Name
{
get { return _name; }
set { _name = value; }
}
public int IdNumber
{
get { return _idNumber; }
set { _idNumber = value; }
}
public string Department
{
get { return _deptarment; }
set { _deptarment = value; }
}
public string Position
{
get { return _position; }
set { _position = value; }
}
}
答案 0 :(得分:2)
我想知道如何添加使用
的选项
int indexT = listEmployee.FindIndex(r >= r.Name == findName);
除了r >=
的语法问题({1}}
这样可行:
r =>
答案 1 :(得分:1)
int indexT = listEmployee.FindIndex(r => r.Name == findName);
应该有效。也许你错过了使用System.Linq 参考
答案 2 :(得分:0)
不完全确定你要完成什么,但是一个简单的List集合不会确保顺序或排序,所以索引(特别是如果预期集合会发生变化)不是一个可靠的手段访问特定对象。
如果索引/顺序很重要,可以查看其他集合类型,例如“已排序”列表:http://msdn.microsoft.com/en-us/library/system.collections.sortedlist.aspx
如果你只是想找到一个特定的对象,你可以使用Linq,然后就像:
listEmployee.Where( r => r.Name == findName );