C# list链表各个元素如何设置索引器?
现在有一个list<object>myList1,它有5000个数据,想通过索引器设置其中每个元素
如何设置?
另外有一个list<object>myList2,它是由list1 copy来的,想通过索引器设置get来判断mylist1中的每个元素是否发生变换,
如果发生变化,如用户更改mylist1中任何一个元素值后,能通过get属性提示或者得到某个元素值发生变化。请问这个索引器如何设置??谢谢!
[解决办法]
你说的那个数据结构叫做数组,List是一个链表。
请选择合适的数据结构来做操作。
[解决办法]
[解决办法]
通过索引器设置,直接 myList1[0]
后面那个问题,可能需要你自己封装一个类,里面包含一个list,然后设置索引器属性,访问的都是内部list的item,set方法时提示
[解决办法]
通过索引器设置,直接 myList1[0]
后面那个问题,可能需要你自己封装一个类,里面包含一个list,然后设置索引器属性,访问的都是内部list的item,set方法时提示
[解决办法]
首先List<T>就可以用索引访问
其次 这个泛型类 可以设置是否修改的属性来判断
[解决办法]
有一个扩展方法ElementAt可以满足你的需求,注意它在System.linq命名空间里
[解决办法]
有人喜欢原封不动的复制他人回复,例如7楼,BS这样的人。
楼主你的问题真的是没有表述清楚,我只看到你的myList1在使用,myList2复制出来后,未曾用到,那你提到它干嘛的?而你又提到Get操作,这个本身就很奇怪,显然应该是Set操作才对,Set时进行对比,发生变化记录。最后要说的是,不是自己定义的类型,如何定义Get、Set操作?显然应该自定义一个继承IList<T>接口的类来实现自定义的Get、Set操作才行。
[解决办法]
元素变化,和索引器无关,你应该定义事件
索引器顾名思义是用来检索数据的。
你的表述有点逻辑不清,很多基础概念都有混淆。反正我不是很理解
[解决办法]
你在给集合赋值的时候 在多加一列不就行啦!
[解决办法]
那我给一个最简单的,直接继承List<T>,可以少写很多代码。
- C# code
public class MyList<T> : List<T> where T : struct { public new T this[int index] { get { return base[index]; } set { //这里限定了T为结构体,所以不会出现为空的情况,可以免除为空判断 if (!base[index].Equals(value)) { MessageBox.Show("数值不相等,已发生变化"); base[index] = value; } } } }
[解决办法]
public T this[int index]
貌似LZ只是对这个语法不清楚