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#中应该怎么修改呢?
{
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#中应该怎么修改呢?
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;
}
}
按你的去做,结果.Name在语法中能自动提示出来了,但编译的时候出现了错误:error CS0131: 赋值号左边必须是变量、属性或索引器to dragonfly001(我思考,我生存!)
你的方法是先删除再插入啊,是不是麻烦了点啊,能不能一句语句就搞定啊?
b2.name="ZZZZZZZ";
A.P_B[0] = b2;
沒辦法一句语句就搞定:)期待高手支招阿!
每個ArrayList不止一個用戶,会有很多,我只想知道怎么修改一个用户就可以了,其他的我就会了
b.Name="XXX";
ArrayList P=new ArrayList();
P.Add(b);
A a;
a.P_B=P;b.Name = "XXXX";
P[0] = 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;
}
我个人觉得过分地追求语法的简练未必是好事,3句很清晰,1句反而容易导致概念的模糊;这也正是C#语法风格特点之一
{
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";