C# 查找类列表的索引
本文关键字:索引 列表 查找 | 更新日期: 2023-09-27 18:32:27
查找类的索引:
我知道找到列表索引的唯一方法是
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; }
}
}
我想知道如何添加要使用的选项
int indexT = listEmployee.FindIndex(r >= r.Name == findName);
这很好,除了语法问题之外r >=
应该r =>
所以这有效:
int indexT = listEmployee.FindIndex(r => r.Name == findName);
请参阅: lambda 表达式
int indexT = listEmployee.FindIndex(r => r.Name == findName);
应该工作。也许你错过了使用System.Linq裁判
不完全确定您要完成什么,但是简单的List集合无法确保顺序或排序,因此索引(特别是如果集合将预期会更改)不是访问特定对象的可靠方法。
如果索引/顺序很重要,可以查看不同的集合类型,例如排序列表:http://msdn.microsoft.com/en-us/library/system.collections.sortedlist.aspx
如果你只是想找到一个特定的对象,你可以使用 Linq 并执行以下操作:
listEmployee.Where( r => r.Name == findName );