C#中数组,arraylist转换为数组和List三者的区别

C#中Array与ArrayList的区别_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
文档贡献者
评价文档:
&&¥2.00
喜欢此文档的还喜欢
C#中Array与ArrayList的区别
C​#​中​A​r​r​a​y​与​A​r​r​a​y​L​i​s​t​的​区​别
把文档贴到Blog、BBS或个人站等:
普通尺寸(450*500pix)
较大尺寸(630*500pix)
大小:4.41KB
登录百度文库,专享文档复制特权,财富值每天免费拿!
你可能喜欢ArrayList和List&T&的主要区别解决办法_c#网站添加异常_check 的request.getParameter解决办法__脚本百事通
稍等,加载中……
^_^请注意,有可能下面的2篇文章才是您想要的内容:
ArrayList和List&T&的主要区别解决办法
c#网站添加异常
check 的request.getParameter解决办法
ArrayList和List&T&的主要区别解决办法
ArrayList和List&T&的主要区别.net2.0里面引入了泛型List &T& ,二者在开发过程环境中的重要区别在哪?
确认一下自己的想法
呵呵 ------解决方案--------------------在泛型面前ArrayList暴露的问题就比较多了
------解决方案--------------------泛型的引入,主要也就是解决装箱拆箱的问题,但是如果不理解这个,据称很难学好将来的VS2007,呵呵~~
------解决方案--------------------装箱拆箱,不用在值类型和引用类型之间转换.
------解决方案--------------------最大好处就是类型安全。
减少装拆箱是由于C#的特性造成的附加优点:)
还有一个优点是可以配合反射使用。
------解决方案--------------------1 类型安全
ArrayList al=new ArrayList();
al.add(123);
al.add(a);
//A a=new A();
像ArrayList这种非范型容器,可以向里面添加任何类型,因为他接收object类型的参数
int a=al[1];这时就会发生类型转换错误
而范型集合类确保了集合中只能有一种类型的成员,所以“安全”了
减少值类型的装箱拆箱,原因还是因为他接收object类型的参数 ------解决方案--------------------类型安全而已~
------解决方案--------------------用泛型的时候多嘛??????
我就是在瞎用。
------解决方案--------------------配合反射使用
ArrayList a = new ArrayList();
List &DateTime&
b = new List &DateTime& ();
然后建一个DataGridView,分别设定DataSource为a和b看看有什么不同。
------解决方案--------------------Mrak了!
------解决方案--------------------半懂不懂
------解决方案--------------------个人认为和c++中的模版有点像啊
不知大家怎么认为呢
------解决方案--------------------楼上都说得差不多了。基本上我都是用泛型来设计数组的,一个是装和拆都很方便,不会在类型上造成问题。
c#网站添加异常
c#网站添加错误在开发机上运行正确,然后现在部署到另一台机器上,结果在添加时添加不进去,出现错误。我想问一下,出现这种错误的可能性有哪些?程序都是一样的,是不是这边的用户配置方面有问题和这边的数据库有问题如果是这两方面又会因为什么呢?大家帮我猜猜吧,谢谢了。还有在web.config里面的appsetting里面,&add key="ConnectionString" value="server=ip1;database=dA;uid=**;pwd=**" /&和connectionStrings里面,&add name="CrConnectionString" connectionString="Data Source=ip2;Initial Catalog=...我在想,ip1和ip2不一样可以不可以呢,他们代表什么意思呢还有数据库的名字,一个叫dA,一个写成da行吗?------解决方案--------------------添加报什么错误
------解决方案--------------------没有具体的报错信息,不好做判断
check 的request.getParameter解决办法
check 的request.getParameter&input type="checkbox" id="needmemberpwd" name="needmemberpwd"
value="0" onClick="checkmemberof(this)"
class="checkstyle"&&input type="checkbox" id="needmemberpwd" name="needmemberpwd"
value="1" onClick="checkmemberof(this)"
class="checkstyle"&当用request.getparameter("needmemberpwd"),value是1时,得到的是1,是0时得到的不是0,确实null,这是怎么回事啊?------解决方案--------------------checkbox是0的时候是没有选中,没选中的不会提交,所以getPara得到null就用 是否null 来判断有没有选中就好了
------解决方案--------------------测试了一下没有你说的问题,如果只有一个checkbox&input type="checkbox" id="needmemberpwd" name="needmemberpwd"
value="0" onClick="checkmemberof(this)"
class="checkstyle"&
选中时request.getparameter("needmemberpwd")得到的是0,没选择得到是NULL&input type="checkbox" id="needmemberpwd" name="needmemberpwd"
value="1" onClick="checkmemberof(this)"
class="checkstyle"&
选中时request.getparameter("needmemberpwd")得到的是1,没选择得到是NULL如果两个checkbox&input type="checkbox" id="needmemberpwd" name="needmemberpwd"
value="0" onClick="checkmemberof(this)"
class="checkstyle"&
&input type="checkbox" id="needmemberpwd" name="needmemberpwd"
value="1" onClick="checkmemberof(this)"
class="checkstyle"&
如果你选中一个,那request.getparameter("needmemberpwd")得到的就是选中的这个checkbox的value值,如果两个都选中那得到的是排在第一个的checkbox的值,如果2个都没选,那得到的就是NULL下面是两个简单的例子程序test1.jsp&%@ page language="java" import="java.util.*" pageEncoding="ISO-8859-1"%&&%String path = request.getContextPath();String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";%&&!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"&&html& &head&
&base href="&%=basePath%&"&
&title&My JSP 'test1.jsp' starting page&/title& &/head& &body&
&form action="test2.jsp"&
&input type="checkbox" id="needmemberpwd" name="needmemberpwd"
value="0"&
&input type="checkbox" id="needmemberpwd" name="needmemberpwd"
value="1"&
&input type="submit" value="submit"&
&/form& &/body&&/html&test2.jsp&%@ page language="java" import="java.util.*" pageEncoding="ISO-8859-1"%&&%String path = request.getContextPath();String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";%&&% String value1 = request.getParameter("needmemberpwd");%&&!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"&&html& &head&
&base href="&%=basePath%&"&
&title&My JSP 'test2.jsp' starting page&/title& &/head&
This is my JSP page. &%=value1 %&&br& &/body&&/html&------解决方案--------------------JS逻辑有问题JScript code
function checkmemberof(obj) {
if (obj.value == 1) {
document.form1.pwdofmember.disabled =
document.form1.pwdofmemberconfirm.disabled =
document.form1.pwdofmember.disabled =
document.form1.pwdofmemberconfirm.disabled =
如果您喜欢IT行业或者对IT行业感兴趣,想开拓技术视野,欢迎加入本站官方QQ群:,在群里认识新朋友和交流技术^_^
本站联系邮箱:C#中数组,ArrayList和List三者的区别Unity3d_百度知道
C#中数组,ArrayList和List三者的区别Unity3d
提问者采纳
int[] T=new int[5];int&T&---&gt,2,5};(){0; list=new list&你好&quot,并且必须定长度例如,2:ArrayList AR=new ArrayList(){&quot,new int[5]{1;集合的一种,其中只能放相同类型的数据;,1,长度可变,并且长度不能超过5ArrayList--&gt,不受限制,其中可以放任何类型; 只能放int,1,增长度例如;int&gt,只能放int,3,自增加长度例如;集合的一种,3,4; 可以放任意类型List&lt,User}:List&lt,只能放int类型的元素,4}我不啰嗦int[]---&gt,长度可变;数组,0
其他类似问题
arraylist的相关知识
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁&&&&&&&&&&&&&&&&&& &&&&&&&&&&&&&&&
我们先来了解一下数组,因为数组在C#中是最早出现的。
数组有很多的优点,比如说数组在内存中是连续存储的,所以它的索引速度是非常的快,而且赋值与修改元素也很简单,比如:
string[] s=new string[3];
s[1]="b1";
但是,数组也存在一些不足的地方。比如在数组的两个数据间插入数据也是很麻烦的。还有我们在声明数组的时候,必须同时指明数组的长度,数组的长度过长,会造成内存浪费,数组和长度过短,会造成数据溢出的错误。这样如果在声明数组时我们并不清楚数组的长度,就变的很棘手了。
针对于数组的这些缺点,C#中最先提供了ArrayList对象来克服这些缺点。
ArrayList是.Net Framework提供的用于数据存储和检索的专用类,它是命名空间System.Collections下的一部分。它的大小是按照其中存储的数据来动态扩充与收缩的。所以,我们在声明ArrayList对象时并不需要指定它的长度。
ArrayList继承了IList接口,所以它可以很方便的进行数据的添加,插入和移除.比如:
ArrayList list = new ArrayList();
//新增数据
list.Add("abc");
list.Add(123);
//修改数据
list[2] = 345;
//移除数据
list.RemoveAt(0);
//插入数据
list.Insert(0, "hello world");
从上面示例看,ArrayList好像是解决了数组中所有的缺点,那么它应该就是完美的了,为什么在C#2.0后又会出现List呢?
还 是从上面的示例看,在list中,我们不仅插入了字符串"abc",而且又插入了数字123。这样在ArrayList中插入不同类型的数据是允许的。因 为ArrayList会把所有插入其中的数据都当作为object类型来处理。这样,在我们使用ArrayList中的数据来处理问题的时候,很可能会报 类型不匹配的错误,也就是说ArrayList不是类型安全的。既使我们保证在插入数据的时候都很小心,都有插入了同一类型的数据,但在使用的时候,我们 也需要将它们转化为对应的原类型来处理。这就存在了装箱与拆箱的操作,会带来很大的性能损耗。
穿插一下装箱与拆箱的概念:
简单的来讲:
装箱:就是将值类型的数据打包到引用类型的实例中
比如将int类型的值123赋给object对象o
int i=123;
object o=(object)i;
拆箱:就是从引用数据中提取值类型
比如将object对象o的值赋给int类型的变量i
object o=123;
int i=(int)o;
装箱与拆箱的过程是很损耗性能的。
正是因为 ArrayList存在不安全类型与装箱拆箱的缺点,所以在C#2.0后出现了泛型的概念。而List类是ArrayList类的泛型等效类。它的大部分 用法都与ArrayList相似,因为List类也继承了IList接口。最关键的区别在于,在声明List集合时,我们同时需要为其声明List集合内 数据的对象类型。
List&int& list = new List&int&();
//新增数据
list.Add(123);
//修改数据
list[0] = 345;
//移除数据
list.RemoveAt(0);
上例中,如果我们往List集合中插入string字符"hello world",IDE就会报错,且不能通过编译。这样就避免了前面讲的类型安全问题与装箱拆箱的性能问题了。
更多信息请查看
【】&&&&&【】
由于各方面情况的不断调整与变化,易贤网所提供的所有考试信息和咨询回复仅供参考,敬请考生以权威部门公布的正式信息和咨询为准!
& (04月30日)
& (04月30日)
& (04月30日)
& (04月30日)
& (04月30日)
& (04月30日)
& (04月30日)
& (04月30日)
& (04月30日)
& (04月30日)
& (04月30日)
& (04月30日)
云南各地招聘
&nbsp&nbsp&nbsp &nbsp&nbsp&nbsp会员注册
本站不参与评论,(&&点此深度交流 )
自觉遵守:爱国、守法、自律、真实、文明的原则
尊重网上道德,遵守中华人民共和国各项有关法律法规
严禁发表危害国家安全,破坏民族团结、国家宗教政策和社会稳定,含侮辱、诽谤、教唆、淫秽等内容的评论
承担一切因您的行为而直接或间接导致的民事或刑事法律责任
您在本站发表的评论,本站有权保留、转载、引用或者删除
参与本评论即表明您已经阅读并接受上述条款
将该文分享到:用C#实现的Observer模式 - 发展是曲折的但也是前进的
- 博客频道 - CSDN.NET
Observer模式:定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时, 所有依赖于它的对象都得到通知并被自动更新。
第一个方法:使用传统方法(不用事件)
public interface Observer
&&void Update(Subject s);
&public abstract class Subject
&&private ArrayList observers=new ArrayList();
&&protected string state=&&;
&&public virtual string State
&&&set{state=Notify();}
&&public void Add(Observer o)
&&&observers.Add(o);
&&public void Remove(Observer o)
&&&observers.Remove(o);
&&protected void Notify()
&&&foreach(Observer o in observers)
&&&&o.Update(this);
&public class ConcreteSubject:Subject
&&override public string State
&&&get{return state + &继承&;}
&&&set{state=value+&_&;Notify();}
&public class FirstObserver:Observer
&&private string state=&&;
&&public void Update(Subject s)
&&&state=s.State+&观察1&;
&&public string State
&public class SecondObserver:Observer
&&private string state=&&;
&&public void Update(Subject s)
&&&state=s.State+&观察2&;
&&public string State
第二个方法:使用C#事件机制
public delegate void MyEventHandler(Subject s);
&public interface Observer
&&void Update(Subject s);
&public abstract class Subject
&&protected string state=&&;
&&public event MyEventHandler Events=
&&public virtual string State
&&&set{state=Notify();}
&&public void Add(Observer o)
&&&Events +=new MyEventHandler(o.Update);
&&public void Remove(Observer o)
&&&Events -=new MyEventHandler(o.Update);
&&protected void Notify()
&&&if(Events!=null)&
&&&&Events(this);
&public class ConcreteSubject:Subject
&&override public string State
&&&get{return state + &继承&;}
&&&set{state=value+&_&;base.Notify();}
&public class FirstObserver:Observer
&&private string state=&&;
&&public void Update(Subject s)
&&&state=s.State+&观察1&;
&&public string State
&public class SecondObserver:Observer
&&private string state=&&;
&&public void Update(Subject s)
&&&state=s.State+&观察2&;
&&public string State
下面是个测试类:
&public class Test_Observer
&&private ConcreteSubject cs=
&&private FirstObserver fo=
&&private SecondObserver so=
&&public Test_Observer()
&&&cs=new ConcreteSubject();
&&&fo=new FirstObserver();
&&&so=new SecondObserver();
&&&cs.Add(fo);
&&&cs.Add(so);
&&public void SetState(string str)
&&&cs.State=
&&public string GetFirstObserverState()
&&&return fo.S
&&public string GetSecondObserverState()
&&&return so.S
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:62332次
积分:1280
积分:1280
排名:第16152名
原创:36篇
转载:218篇
(17)(16)(2)(12)(1)(6)(17)(49)(35)(27)(29)(11)(24)(10)(2)

我要回帖

更多关于 arraylist转化为数组 的文章

 

随机推荐