我是C#编程的新手。我想这可能是一个我不知道的非常简单的解决方案。
假设我有一个类文件
using System;
using System.Collections.Generic;
namespace sharepointproject1
{
public partial class School
{
public students[] students { get; set; }
}
public partial class student
{
public marks[] marks;
public extraactivites[] extraactivities;
}
public partial class marks
{
public int m1 { get; set; }
public int m2 { get; set; }
}
public partial class extraactivities
{
public decimal m5;
public decimal m6;
}
}
现在在aspx.cs文件中如何为声明的数组添加标记?
namespace sharepointproject1
{
public partial class testing : usercontrol
{
School school = new school();
protected void Page_Load(object sender, EventArgs e)
{
school.students[0].marks[0].mark1 = 45;
}
}
}
我需要在运行时动态添加项目。我怎么做?我是否必须在类文件中将数组更改为list数组。希望我能从我的问题中找到一些意义。后来我需要将标记绑定到gridview。
请帮忙!
答案 0 :(得分:6)
数组具有固定的大小 - 使用更灵活的集合,例如List<T>
,它将根据您的需要增长。
Eric Lippert撰写了一篇关于arrays should be considered somewhat harmful。
的好文章此外:
答案 1 :(得分:1)
我的建议是忘记数组并使用List
或List<T>
这是通用列表。
不仅因为解决了问题的动态部分,而且还具有更好的性能,避免了盒子和拆箱。
答案 2 :(得分:0)
您需要将Array更改为可以像List&lt;&gt;一样动态增长的内容。将AddMark(标记标记)等方法添加到学生类并在类中执行添加操作可能是更好的选择。
答案 3 :(得分:0)
除非你因为某些原因而在.NET 1.0中遇到困难,否则我强烈建议你查看.NET中的Collection类和泛型。这些将允许您用List替换array []声明,其中T是.NET类型。 e.g
public class Student
{
public List<Mark> Marks{get;set;}
}
public class Mark
{
public int SomePropertyA { get; set; }
public int SomePropertyB { get; set; }
}