2013-03-08 30 views
0

我想在c#中更新ArrayList中的记录,我想将我的状态更新为ArrayList的特定记录的非活动状态,下面是代码,但是这样做不能正常工作,因为它不会正常工作将状态更新为非活动状态。如何更新ArrayList中的对象记录

public Boolean changeAccStatus(int userid) 
{ 
    Boolean result = false; 
    for (int i = 0; i < list.Count; i++) 
    { 
     AccountDto dto = (AccountDto)list[i]; 
     if (dto.Userid == userid) { 
      dto.Status = "Unactive"; 
      list[i] = dto; 
      result = true; 
     } 
    } 
    return result; 
} 
+1

你为什么要使用'ArrayList',而不是一个强类型'名单'? – 2013-03-08 05:55:37

+0

它应该做什么差异。 – 2013-03-08 05:56:18

+0

顺便说一句,它是'不活跃'而不是'无效' – 2013-03-08 05:56:20

回答

1

,如果你能能列表转换为泛型列表比你能做到这一点

Func<int, AccountDto, bool> UpdateRecord= (y, x) => 
        { 
        if(x.Userid== y){x.Status="Unactive"; 
        return true; 
        }; 
    List<AccountDto> mylist = new List<AccountDto>(); 
    var v = from x in mylist 
      where UpdateRecord(userit-intvalue, x) 
      select x; 

,你也可以试试这个

List<AccountDto> mylist = new List<AccountDto>(); 

list.ForEach(x => { 
    if(x.Userid== userid) 
     x.Status="Unactive"; 
}); 
0

(AccountDto)list[i].Status = "inactive";

0

下面尝试代码

foreach (var temp in list) 
     { 
      var t = temp as AccountDto; 
      if (t != null && t.Userid.Trim().Equals(userid.Trim())) 
       t.Status = "inactive"; 
     } 

也觉得这样做再保到泛型列表< AccountDto>,这会给你的LINQ的功率直接