如何更新ArrayList中的对象记录

时间:2013-03-08 05:54:17

标签: c# .net arraylist

我想在c#中更新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;
}

3 个答案:

答案 0 :(得分:0)

如果你能够将列表转换为通用列表,那么

 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";
});

答案 1 :(得分:0)

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

答案 2 :(得分:0)

尝试以下代码

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

还考虑对通用List&lt;进行重新分解。 AccountDto&GT; ,这将直接给你Linq的力量