[英]C# Find Index of a List of Classes
查找類的索引:
我知道找到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; }
}
}
我想知道如何添加使用選項
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集合不會確保順序或排序,所以索引(特別是如果預期集合會發生變化)不是訪問特定的可靠方法賓語。
如果索引/順序很重要,可以查看不同的集合類型,例如Sorted列表: http : //msdn.microsoft.com/en-us/library/system.collections.sortedlist.aspx
如果您只是想找到一個特定的對象,您可以使用Linq,然后執行以下操作:
listEmployee.Where( r => r.Name == findName );
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.