数组必须初始化,可以用icollection接口
解决方案 »
- 求助:遍历选项卡panel上的comboboxEx并且所有.text=""后,为什么无法清空?
- 那位高人能用c#编写的基于移动智能设备的企业订单系统程序,急求!
- 一个超简单问题
- 怎样在cs文件里面调用aspx中写好js (button是在datalist里面的!)搞了一上午了 头都大了阿。。。
- C# web 串口通讯和网络通讯怎么用啊?
- winform中如何约束datagrid里单元格的数据输入???!!!
- 播放mp3的问题
- 反射问题:如何区分调用方是“属性”还是“方法”?
- 请教一个编码问题
- 如何实现Hint功能?
- 如何将form更改为不可视
- 不通过数据库,怎样得到当前有多少个session?(多少人连在线上)
---直接用呀
ArrayList tmpArray = new ArrayList();
tmpArray.Add(tmp);
...
struct rtnResult
{
string[,] result;
string[,] reason;
}
整个函数的返回值为这个结构,
我想把datatable里的某些行,列分别写入不同的数组,现在不知道怎么初始化这个
数组,不知道怎么怎么动态的把符合条件的值付到数组上,谢谢!各位高手,快帮帮我吧!
我要完不成任务了,在此谢谢各位了!
public class ClassTest
{
private string x;
private string y;
public ClassTest(string strCol,string strRow)
{
x=strCol;
y=strRow;
}
public string X
{
get{return x;}
set{x=value;}
}
public string Y
{
get{return y;}
set{y=value;}
}
}
----------
asp.aspx文件中..
----------
ArrayList alTemp=new ArrayList();
alTemp.Add(new ClassTest("010","中国"));
alTemp.Add(new ClassTest("011","美国"));
alTemp.Add(new ClassTest("012","英国"));
alTemp.Add(new ClassTest("013","法国"));
alTemp.Add(new ClassTest("014","德国"));
dataGrid1.DataSource=alTemp;
有语法错误呀!初始化能否用变量呀!
ArrayList al1 = new ArrayList(); ArrayList rm2 = new ArrayList();
rm2.Add((string)"hello1");
rm2.Add((string)"hello2");
rm2.Add((string)"hello3");
rm1.Add((ArrayList)rm2);就生成一个类似二维数组的列表
用 (ArrayList)rm1[0] 可以取出rm2
(String)rm2[0] 可以取出"hello1"唉呀,就是这个意思。
.Add(Object obj) 方法可以加入一个元素
.RemoveAt(int i) 方法可以删除指定元素
.Insert(int index, Object obj) 方法可以插入一个元素
这个取值也是很simple的
ArrayList有个属性.size()
告诉你这个列表中有多少个元素
用for (int i=0;i<al.Count;i++)
{
String ss = al[i];
}
就可以取出所有元素了!
(转贴)
dtStr[][]=new string [datatable.rows.count][10](列数根据你的数据库情况自己设置,这里我是随便假设的)for(int i=0;i<datatable.rows.count;i++)
{
for(int j=0;j<10;j++)
{
dtStr[i][j] = datatable.row[i][j].ToString();
}
}
这样应该就可以的
我负值完了,想把数组元素取出来,
for (i=0;i<??????;i++)
for (j=0;i<????;j++)
a=str[i,j];
其中,??????处该添什么呀?怎么取出他们的长度呀,str.length不行呀!!!!
for (j=0;j<str[i].length;j++)
a=str[i,j];
方法1:你可以假设一个初始长度,在对数组添加元素的时候,你都需要对数组做边界检查,如果数组尺寸不够了,你需要创建一个新的数组,然后复制原来的数组到新的数组。
初始化代码如: string[,] myStrings = new string[10,10]; //假设元素的类型为string
方法2:初始化第一维长度为0,在每次插入新的原始的时候,都复制一个新的数组,使它的长度等于原来数组长度+1,这里假定第二维是不变的(因为同时对两个维进行扩展,没有太大的意义,同时增加了复杂度,即使是DataTable,也是先要设置列数,再添加行)
初始化代码如: string[,] myStrings = new string[0,10];实现数组动态的代码如:
插入新的行的操作:
public void Add(string[] dataString)
{ int rowCount = myStrings.GetUpperBound(0);
int colCount = myStrings[0].GetUpperBound(1);
string[,] temp = new string[rowCount+1, colCount]; for(int i=0; i<rowCount; i++)
for(int j=0; j<colCount; j++)
temp[i,j]= myString[i,j]; //复制原数组到新数组
int k=0;
foreach(string data in dataStrings) //赋值
temp[rowCount,k++] = data;
myStrings = temp; //把新数组设置回字段
}
另外如果第二维需要扩展,可以考虑采用锯齿数组结构,也就是说数组的数组:
string[][] myString;
这种结构和二维数组不同的是,它的第二维可以不是固定的,动态扩展可以按照一维数组分别对两个数组进行。方法类似上面代码的过程,不同的是它可以使用一个类库中的CopyTo方法(当然,CopyTo内部也是逐个复制)。
希望上述代码对你有些帮助。