CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
不看会后悔的Windows XP之经验谈 简单快捷DIY实用家庭影院
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  .NET技术 >  C#

怎么修改ArrayList链表中的值?

楼主Cassava(车超)2005-11-15 09:12:40 在 .NET技术 / C# 提问

struct   B  
  {  
  string   Name;  
  }  
  struct   A  
  {  
  string   MeetingID;  
  ArrayList   P_B; //指向结构B的指针链表  
  }  
   
  //给链表添加一个新的用户  
  B   b;  
  b.Name="XXX";  
  ArrayList   P=new   ArrayList();  
  P.Add(b);  
  A   a;  
  a.P_B=P;  
  //现在想修改用户的姓名  
  在Delphi中应该是这样修改:B(a.P_B.item[0])^.Name="XXXX";  
  请问在C#中应该怎么修改呢? 问题点数:100、回复次数:16Top

1 楼mapserver(杨东 http://mapserver.cnblogs.com)回复于 2005-11-15 09:17:41 得分 10

((B)A.P_B[0]).Name   =   "YYYY";Top

2 楼dragonfly001(I want to fly!)回复于 2005-11-15 09:36:10 得分 10

 
  foreach   (object   obj   in   a.P_B)  
  {  
      if(obj.ToString().Equals("3"))//這裡對第三個元素修改,自己可以修改為自己需要的  
        {  
            int   i=a.P_B.IndexOf(obj);  
            string   nObj   ="name";  
            a.P_B.Remove(obj);  
            a.P_B.Insert(i,nObj);  
            break;  
        }  
  }Top

3 楼Cassava(车超)回复于 2005-11-15 09:52:58 得分 0

to     mapserver(杨东)    
  按你的去做,结果.Name在语法中能自动提示出来了,但编译的时候出现了错误:error   CS0131:   赋值号左边必须是变量、属性或索引器  
   
  to   dragonfly001(我思考,我生存!)    
  你的方法是先删除再插入啊,是不是麻烦了点啊,能不能一句语句就搞定啊?Top

4 楼Eddie005(♂) №.零零伍 (♂)回复于 2005-11-15 10:06:28 得分 50

B   b2   =   (B)A.P_B[0];  
  b2.name="ZZZZZZZ";  
  A.P_B[0]   =   b2;Top

5 楼dragonfly001(I want to fly!)回复于 2005-11-15 10:06:59 得分 0

我的意思是用新的object   替代原來的!  
  沒辦法一句语句就搞定:)期待高手支招阿!Top

6 楼dragonfly001(I want to fly!)回复于 2005-11-15 10:14:10 得分 0

理解有誤:)LZ的每個ArrayList   只有一個用戶嗎???Top

7 楼Cassava(车超)回复于 2005-11-15 10:27:29 得分 0

按   Eddie005(♂)   暴赱   『零零伍』(︶︵︶)   的方法已经可以修改了,非常感谢各位的帮忙,但还是要三句语句,能不能一句语句就解决呢,像VC和Delphi都是一句语句就可以解决了的,难道C#对指针的支持就这么差吗?Top

8 楼Cassava(车超)回复于 2005-11-15 10:30:31 得分 0

to   dragonfly001(我思考,我生存!)    
  每個ArrayList不止一個用戶,会有很多,我只想知道怎么修改一个用户就可以了,其他的我就会了Top

9 楼JasonHeung(拥有一切不过就这样笑着哭)回复于 2005-11-15 10:33:49 得分 5

B   b;  
  b.Name="XXX";  
  ArrayList   P=new   ArrayList();  
  P.Add(b);  
  A   a;  
  a.P_B=P;  
   
  b.Name   =   "XXXX";  
  P[0]   =   b;Top

10 楼swordragon(古道热肠)回复于 2005-11-15 10:34:38 得分 5

struct   B  
  {  
          public   string   Name;  
  }  
   
  struct   A  
  {  
          string   MeetingID;  
          public   ArrayList   P_B;  
  }  
   
  private   void   Form1_Load(object   sender,   System.EventArgs   e)  
  {  
          B   b;  
          b.Name("XXX");  
   
          ArrayList   p   =   new   ArrayList();  
          p.Add(b);  
   
          A   a;  
          a.P_B   =   p;  
           
          B   b1   =   (B)a.P_B[0];  
          b1.Name   =   "YYY";  
          a.P_B[0]   =   b1;  
  }Top

11 楼Eddie005(♂) №.零零伍 (♂)回复于 2005-11-15 10:41:48 得分 0

to   楼主:  
        我个人觉得过分地追求语法的简练未必是好事,3句很清晰,1句反而容易导致概念的模糊;这也正是C#语法风格特点之一  
  Top

12 楼mcsedb()回复于 2005-11-15 11:04:48 得分 0

注意一下类的转换就行了。Top

13 楼Kshatriya(何以解忧,惟有杜康)回复于 2005-11-15 11:42:44 得分 20

struct   B  
  {  
  string   Name;  
  }  
   
  你把B改为类就可以了,我想应该是值类型和引用类型的关系,具体内部的机制我也说不清楚,很模糊,不过你把B这样子写  
   
  public   class   B  
  {  
  public   B()  
  {}  
  private   string   sPersonName;  
  public   string   Person  
  {  
  get  
  {  
  return   sPersonName;  
  }  
  set  
  {  
  sPersonName   =   value;  
  }  
  }  
  }  
   
  然后再修改的时候就可以一句搞定了  
  如下:  
  ((B)a.personNamelist[0]).Person   =   "bbbbb";Top

14 楼Kshatriya(何以解忧,惟有杜康)回复于 2005-11-15 11:44:03 得分 0

而且,其实B是具有属性的一个实体,为什么不作为一个类来写呢?楼主用结构来作是否有什么其他要求或者特殊的意图呢??Top

15 楼Kshatriya(何以解忧,惟有杜康)回复于 2005-11-15 11:45:31 得分 0

B是一个具有属性的实体,理论上应该写成一个类的,楼主使用结构是有特殊的意图还是有具体的要求呢?Top

16 楼Cassava(车超)回复于 2005-11-16 15:33:46 得分 0

感谢各位的帮忙,结贴了Top

相关问题

  • 怎么修改存储在arrayList中的point的值?
  • 表修改
  • 实现单一表单修改域值,如何实现跨表单修改域值?
  • 我把ArrayList值赋给datagrid后,在修改datagrid值时,就会变成其它值,求教在线等~~~~~~~~~~~
  • 如何修改注册表的默认值
  • 如何即时刷新刚修改过的注册表键值
  • 如何修改注册表中REG_MULTI_SZ类型的值?
  • 提问关于vb.net中如何修改注册表值
  • 怎么修改注册表中的(默认)键的值?
  • 調用存儲過程修改表格某一字段的值

关键词

  • c#
  • 修改
  • 属性
  • 结构
  • spersonname
  • arraylist
  • 搞定
  • 应该
  • obj
  • struct

得分解答快速导航

  • 帖主:Cassava
  • mapserver
  • dragonfly001
  • Eddie005
  • JasonHeung
  • swordragon
  • Kshatriya

相关链接

  • CSDN .NET频道
  • .NET类图书
  • C#类图书
  • .NET类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo