-1

我想ArrayList在 c# 中更新记录,我想将我的状态更新为特定记录的非活动状态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;
}
4

3 回答 3

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";
});
于 2013-03-08T05:59:34.103 回答
0

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

于 2013-03-08T06:00:33.267 回答
0

试试下面的代码

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

还可以考虑对泛型 List<AccountDto> 进行重构,这将直接为您提供 Linq 的强大功能

于 2013-03-08T06:08:19.330 回答