-1

ArrayListC# でレコードを更新したいのですが、ステータスを の特定のレコードの非アクティブに更新したいのです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

以下のコードで試してください

 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 に答える
0

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

于 2013-03-08T06:00:33.267 に答える
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 に答える