C#能不能动态声明数组?

kkfvjmtd 2007-10-29 10:16:02
在线等
...全文
674 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
-佚枫- 2011-08-24
  • 打赏
  • 举报
回复
[Quote=引用 13 楼 kkfvjmtd 的回复:]
我现在在做毕设,写一个K均值聚类的程序,过程是这样的,数据库中有4个字段(double型),记录数不知。我先声明一个结构,如
public struct shuzu
{
public double a;
public double b;
public double c;
public double d;

public shuzu(double a, do……
[/Quote]
这也叫动态啊,如果说不用确定数组长度,随意增加数组长度算是动态的,你在这都给数组长度了,就不算是动态的!
FollowCN 2007-10-29
  • 打赏
  • 举报
回复
arrylist<int> arry=new arrylist<int>
使用泛型
kkfvjmtd 2007-10-29
  • 打赏
  • 举报
回复
我现在在做毕设,写一个K均值聚类的程序,过程是这样的,数据库中有4个字段(double型),记录数不知。我先声明一个结构,如
public struct shuzu
{
public double a;
public double b;
public double c;
public double d;

public shuzu(double a, double b, double c, double d)
{
this.a = a;
this.b = b;
this.c = c;
this.d = d;
}
}

然后在一个类中定义了一个变量number与一个返回该变量的一个属性,如下
class Program
{
int number;
public int _number
{
set
{
number = value;
}
get
{
return number;
}
}

shuzu[] julei;//在这里定义了一个结构数组。
public void fuzhi()//给数组元素赋值。
{
julei = new shuzu[number];
for (int i = 0; i <= number-1; i++)
{
julei[i].a = array1[i];//array1等不是数据库中的数据,是我随便取的。
julei[i].b = array2[i];
julei[i].c = array3[i];
julei[i].d = array4[i];
}
}

//运用:

static void Main(string[] args)
{
Program aa = new Program();
aa._number = 19;
aa.fuzhi();
Console.WriteLine(aa.julei[0].b);

Console.WriteLine(aa.julei.Length.ToString());

for (int i = 0; i <= aa.julei.Length-1; i++)
{
Console.WriteLine(aa.julei[i].c);
}

Console.ReadLine();
}
}

你说不能动态声明数组,为什么上面我试了一下没有出错啊,能运行。上面aa._number = 19;这一句就是想取数据库中记录的个数,它是变得哟,19是我随便取的。

K均值聚类就是把数据库中的记录合理分成几个组。

大家给点意见。
  • 打赏
  • 举报
回复
c# 没有动态数组,用范型解决,这是.net 2.0新特性,9搂便是
kkfvjmtd 2007-10-29
  • 打赏
  • 举报
回复
多谢,还没有人回答9楼的问题呢。。。。。。
完了给分。
超级大笨狼 2007-10-29
  • 打赏
  • 举报
回复
任何语言都可以动态声名数组,只是这样意义不大,因为数组的特点就不是方便改变长度的.

建议采用其他结构体,.NET2.0一伙提供了泛型容器,多数都是Hash(散列)容器,可以作到快速检索.建议使用.
kkfvjmtd 2007-10-29
  • 打赏
  • 举报
回复
是呀,C语言好像就不能这样声明。
上面这们哥们List <int > list =new List <int >,这是啥意思呀?
wangchao1982 2007-10-29
  • 打赏
  • 举报
回复
当然可以声明动态数组了.被别的语言弄迷糊了吧
soaringbird 2007-10-29
  • 打赏
  • 举报
回复
int c;
c = int.Parse(Console.ReadLine());

int[] i = new int[c];
沅江汐水 2007-10-29
  • 打赏
  • 举报
回复
List<int> list =new List<int>
kkfvjmtd 2007-10-29
  • 打赏
  • 举报
回复
我也试了一下,也行。我就是不敢确定,能不能像这样动态声明,让用户输入一个数,然后用这个数声明一个数组。
还有想问一个问题,有好多人建义让我看看arraylist,这个集合不是一维的吗,那要是二维的就好用了吧?
hooo 2007-10-29
  • 打赏
  • 举报
回复
试了一下,可以啊。。
kkfvjmtd 2007-10-29
  • 打赏
  • 举报
回复
我的意思是在一个类中有一个变量,比如int a;然后用它声明一个数组,像这样int[] array = new int[a];不知这样行不?
muyanpeng_mail 2007-10-29
  • 打赏
  • 举报
回复
这个意思么?


int j = 9;
int[] i = new int[j];
Console.WriteLine(i.Length);
Console.Read();
jiatong1981 2007-10-29
  • 打赏
  • 举报
回复
不知你的具体需求

参考ArrayList

110,537

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧