
c#的链表中的数据如何更改其值?由于链表传引用,感觉很难从中读出数据改变。因为原数据会一起变。
ClassA{stringname;intnumber;publicA(){}}List<A>lista=newlist<A>();为链表增加元素,每个元素的name,n...
Class A{
string name;
int number;
public A(){}}
List <A> lista=new list<A>();
为链表增加元素,每个元素的name,number被初始化并赋值。
TempA=new A();
A=lista[3];A.name="nameA";
//读出3号元素,并更改其name值为nameA
同时其他值不变,如number
lista.insert(A,3);
lista.remove(4);//移除4号元素,此时刚插入的3号元素同时会并清空
如何解决? 展开
string name;
int number;
public A(){}}
List <A> lista=new list<A>();
为链表增加元素,每个元素的name,number被初始化并赋值。
TempA=new A();
A=lista[3];A.name="nameA";
//读出3号元素,并更改其name值为nameA
同时其他值不变,如number
lista.insert(A,3);
lista.remove(4);//移除4号元素,此时刚插入的3号元素同时会并清空
如何解决? 展开
1个回答
展开全部
那个链表是只读的,要修改的话可以直接先Remove掉要修改的那项,然后再Add改后的数据,这样操作也不算麻烦吧,就是查找→删除→重新插入的操作。
更多追问追答
追问
关键是我想先读出要删除的数据,将其修改后在存入链表,请支招!!
追答
你是没法读呢还是没法删呢还是没法插入呢
很清除的流程啊
比如
List _list=new List();
//假设_list里面已经有值
//索引到你要修改的值
int index=0;//你要修改的链表元素
T temp=_list[index];//临时变量存储原数据
//对temp进行修改
_list.Remove(_list[index]);//删除原来数据
//或者
_list.RemoveAt(index);
_list.Add(temp);//插入修改后的数据。
找不到索引编号index就用循环判断
for(int i=0;i<_list.Count;i++)
//if(是你要修改的那项)
index=i;
或者
foreach(T t in _list)
//if(是你要修改的那个)
temp=t;
这样还不明白吗
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询