来给你写了个函数,拿去用,不谢
创新互联公司专注于应县企业网站建设,成都响应式网站建设公司,成都商城网站开发。应县网站建设公司,为应县等地区提供建站服务。全流程按需规划网站,专业设计,全程项目跟踪,创新互联公司专业和态度为您提供的服务
Function RemoveAt(Of T)(ByVal arr As T(), ByVal index As Integer) As T()
Dim uBound = arr.GetUpperBound(0)
Dim lBound = arr.GetLowerBound(0)
Dim arrLen = uBound - lBound
If index lBound OrElse index uBound Then
Throw New ArgumentOutOfRangeException( _
String.Format("Index must be from {0} to {1}.", lBound, uBound))
Else
Dim outArr(arrLen - 1) As T
Array.Copy(arr, 0, outArr, 0, index)
Array.Copy(arr, index + 1, outArr, index, uBound - index)
Return outArr
End If
End Function
动态数组一般开始不能直接写dim a as string。除非Variant。一般先定义类型 但是数组名后得加上括号。例如
DIM a() AS STRING
后面根据需要使用的时候,可以自己定义大小。但是必须注意一点。重新定义的时候,
Redim a(11) 的时候,就会将原来的数组元素清空了,没有保存。
Redim Preserve a(11) 就会将重新定义数组大小的同时,还将原来的数据保存了。
将二位数组转成DataTable,网上找的不知道成不成
public static DataTable ConvertToDataTable(string[,] arr)
{
DataTable dataSouce = new DataTable();
for (int i = 0; i arr.GetLength(1); i++)
{
DataColumn newColumn = new DataColumn(i.ToString(), arr[0, 0].GetType());
dataSouce.Columns.Add(newColumn);
}
for (int i = 0; i arr.GetLength(0); i++)
{
DataRow newRow = dataSouce.NewRow();
for (int j = 0; j arr.GetLength(1); j++)
{
newRow[j.ToString()] = arr[i, j];
}
dataSouce.Rows.Add(newRow);
}
return dataSouce;
}
如果不要原来的数据,直接Redim a(199)
,所有数据清空,如果需要保留原来的数据,加上关键字preserve redim a(199)
,则保留原来数据,如此定义,不会造成内存泄露的
vb.net已经去掉了控件数组这个类,不过有个代替该方式的一个属性:Tag,你可以把这些关联的Tag属性设置为同一标记,如:a。然后遍历所有的checkbox并且tag为a的则选定:Protected Sub chkAll_Click() For Each ctl As Control In Me.Controls ''如果checkbox在一个容器里,比如groupbox,那可以用groupbox.controls
If ctl.GetType().Name.ToLower() = "checkbox" Then
CType(ctl, CheckBox).Checked = CheckBox3.Checked
End If
NextEnd Sub
Dim a(3, 3, 3)
Dim b(3, 3), c(3, 3), d(3, 3)
Private Sub aaa()
' 对数组a(3,3,3)赋值
For i = 1 To 3
For j = 1 To 3
b(i, j) = a(1, i, j)
Next
Next
For i = 1 To 3
For j = 1 To 3
c(i, j) = a(2, i, j)
Next
Next
For i = 1 To 3
For j = 1 To 3
d(i, j) = a(3, i, j)
Next
Next
End Sub