从列表<>获取索引

时间:2014-03-05 06:40:29

标签: c# list

嗨,我的项目中有以下代码

class CVote
{
    public int id;
    public int studentId;
    public string answer;
    public int questionIndex;
    //public DateTime occurred;
}

public static List<CVote> votes = new List<CVote>();

我想获取某些studentID的索引(例如:studentID 15) 所以我尝试以下代码

int test = -1;
test = Global.votes.IndexOf(15);

但它以错误结果结束

  1. 无效参数
  2. 无法从int转换为CVote
  3. 任何想法如何正确地做到这一点?

3 个答案:

答案 0 :(得分:3)

您需要FindIndex

var std = votes.FindIndex(x=>x.id == 15)

答案 1 :(得分:1)

尝试此操作(拥有IndexOf

var element = Global.votes.SingleOrDefault(e=>e.id==15);
if(element!=null)
 {
  var index = Global.votes.IndexOf(element);
 }

或使用FindIndex直接拥有

public static bool Find15(CVote vote){
  if(vote.id==15) return true;
  return false;
}
var index = Global.votes.FindIndex(e=>e.id==15);

答案 2 :(得分:1)

IndexOf接受与List(示例中为CVote)中的元素相同类型的参数,并返回该元素的索引(如果找到),并返回-1如果不是