110,499
社区成员
发帖
与我相关
我的任务
分享
class Program
{
static void Main(string[] args)
{
List<Item> items = new List<Item>();
//添加
Item item1 = new Item();
item1.Id = 0;
item1.DisplayText = "test1";
items.Add(item1);
//添加
Item item2 = new Item();
item2.Id = 1;
item2.DisplayText = "test2";
items.Add(item2);
//Item item = items[1];
//item.DisplayText = "金星";
//items[1] = item;
items[0].DisplayText = "test3"; // 这个地方会报错误
}
public struct Item
{
public int Id;
public string DisplayText;
}
}
public struct AA
{
public int value;
public AA(int v)
{
value = v;
}
}
private static void TestChangeStructList()
{
//定义一个泛型List
List<AA> datas = new List<AA>();
//添加2个元素,value分别为1,2
datas.Add(new AA(1));
datas.Add(new AA(2));
//打印出当前元素
Console.WriteLine("原始List:");
datas.ForEach(o => Console.WriteLine(o.value.ToString()));
//使用List的索引器赋值
datas.ForEach(o => o.value++);
//打印出当前元素
Console.WriteLine("使用List的索引器赋值");
datas.ForEach(o => Console.WriteLine(o.value.ToString()));
//反射List内部的值类型数组赋值
AA[] items = (AA[])((FieldInfo)(datas.GetType().GetMember("_items", BindingFlags.NonPublic | BindingFlags.Instance)[0])).GetValue(datas);
items[0].value++;
items[1].value++;
//打印出当前元素
Console.WriteLine("反射List内部的值类型数组赋值");
datas.ForEach(o => Console.WriteLine(o.value.ToString()));
}
原始List:
1
2
使用List的索引器赋值
1
2
反射List内部的值类型数组赋值
2
3