请问C#该多用数组还是list?

AdmiralMeng 2010-03-14 11:06:25
请教:是用数组好呢还是用list<T>好呢?

从方便性上说感觉list要方便很多,但不知效率如何,如果我有10个int型数据要传给函数,该用哪种呢?int[] or list<int>

是不是可以将所有int[],string[] 之类的数组全部用list<int>,list<string>代替?

...全文
1384 18 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
18 条回复
切换为时间正序
请发表友善的回复…
发表回复
dzang 2012-06-30
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 的回复:]

这正的价值是靠逻辑、应用和扩展方面的考虑 --> 真正的价值是靠逻辑、应用和扩展方面的考虑

这是工程问题。但是好的工程方法就是适应变化,而不是纠缠于过去的东西。

当你与别人共同工作时,实际上别人的代码是怎样就怎样,没有必要去修改它。别人使用 T[],或者别人使用List<T>,使用时没有任何先去愤青的必要。
[/Quote]



什么叫【高远】,高远,不是别人说技术,你就强调市场,别人说市场,你就强调技术这种“反调”。

什么叫【高远】,高远就是,了解数字化促进的,最终是分工的明确,做技术的,就是该打扎实基础知识点,不偏科、但一定专注技术,做市场的,同样专注在对“市场资源”的获取,和“市场趋向”的把握,而不是耗在技术论坛上做领袖状;

什么叫【高远】,高远就是,不因为参与过几个不大不小的项目,就目空一切,认为手上的技术够用就能以市场眼光称王;认为没必要继续钻研、提升,而已经到了可以“华丽转身”的时候;认为自己已经可以撑起所有人头上的那片天。

技术有多强?市场眼光有多强?强还一天都耗在CSDN,而非自己的“企业”上?



dzang 2012-06-30
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 的回复:]

这正的价值是靠逻辑、应用和扩展方面的考虑 --> 真正的价值是靠逻辑、应用和扩展方面的考虑

这是工程问题。但是好的工程方法就是适应变化,而不是纠缠于过去的东西。

当你与别人共同工作时,实际上别人的代码是怎样就怎样,没有必要去修改它。别人使用 T[],或者别人使用List<T>,使用时没有任何先去愤青的必要。
[/Quote]


实在是看不过——真的是十处打锣,九处有你。

1、到处都回帖,经常说空话;

2、说空话也就算了,还一副激愤状,“使用时没有任何先去愤青的必要”,这个愤青到底是谁?

3、这里是以技术交流为主的平台,重视客户、市场的高阶项目负责人,自有天地,也没这么多时间耗在这里,若期望体现自己的【宏观感】或【市场感】,就不要在技术论坛浪费青春,有更高阶的平台给“领导”飞;

4、技术不扎实,就提高;眼光够高远,就展翅高飞。真正的愚蠢,是两头都想搞,两头都不占。



zhaobinzcb 2010-03-14
  • 打赏
  • 举报
回复
貌似没人测试过。。。。。。。。
七爷 2010-03-14
  • 打赏
  • 举报
回复
看你的需求决定喽
  • 打赏
  • 举报
回复
这正的价值是靠逻辑、应用和扩展方面的考虑 --> 真正的价值是靠逻辑、应用和扩展方面的考虑

这是工程问题。但是好的工程方法就是适应变化,而不是纠缠于过去的东西。

当你与别人共同工作时,实际上别人的代码是怎样就怎样,没有必要去修改它。别人使用 T[],或者别人使用List<T>,使用时没有任何先去愤青的必要。
AdmiralMeng 2010-03-14
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 sp1234 的回复:]

不知道你测试过没有,如果将一个产品中所有数组转换为List<T>或者相反,你的公司一年能多赚10万块钱吗?一套软件能够因为这种转换了就价值升高100块钱吗?

如果不是,就不要纠缠什么“效率如何”。这正的价值是靠逻辑、应用和扩展方面的考虑。
[/Quote]

嗯,软件的重点是在应用和功能上,运行效率也要从整个系统结构上加以考虑,不必拘泥于个别函数的运行效率。

但是如果有大量动态字符串需要连接,我想大部分人都会用StringBuilder而不用 + 吧。
用List<T>代替所有个数可能变动的数组会不会像只使用 + 不用StringBuilder来连接大量字符串一样被同行笑话是低级的写法?
wuyq11 2010-03-14
  • 打赏
  • 举报
回复
如果初始化时确定大小,那么就使用Array
如果初始化时不确定大小,那么就使用List
小_虎 2010-03-14
  • 打赏
  • 举报
回复
话是这样说的:不要跟我讲这么高深的理论,请问这高深的理论能给客户省几毛钱
  • 打赏
  • 举报
回复
不知道你测试过没有,如果将一个产品中所有数组转换为List<T>或者相反,你的公司一年能多赚10万块钱吗?一套软件能够因为这种转换了就价值升高100块钱吗?

如果不是,就不要纠缠什么“效率如何”。这正的价值是靠逻辑、应用和扩展方面的考虑。
AdmiralMeng 2010-03-14
  • 打赏
  • 举报
回复
那只要涉及到个数可能变动就全部用list,其它固定个数就用int[]等,可以吗?

我知道这个没有确切的答案,需要视具体情况而定,只是想知道大部分情况怎么做。
xingshungames 2010-03-14
  • 打赏
  • 举报
回复
感觉list用起来比数组方便。但是貌似数组的效率比list要来的高一点点。。。看情况了
ivws_19 2010-03-14
  • 打赏
  • 举报
回复
全代替肯定是不必要的,方便的情况下代替
AdmiralMeng 2010-03-14
  • 打赏
  • 举报
回复
将所有int[],string[] 之类的数组全部用list<int>,list<string>代替的方法好吗?
a569673493 2010-03-14
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 wuyq11 的回复:]

如果初始化时确定大小,那么就使用Array
如果初始化时不确定大小,那么就使用List
[/Quote]

嗯 正解 还有就性能了 数组的话遍历比list要快
RexZheng 2010-03-14
  • 打赏
  • 举报
回复
List<T> 的内部还是用 T[] 数组保存的,功能比 T[] 强大,但是会牺牲相应的性能。
越过越咸 2010-03-14
  • 打赏
  • 举报
回复
原始数组 快 sp1234 霸道 哈哈
  • 打赏
  • 举报
回复
其实我个人的观点是,整个软件这部分的低下效率可以用其它部分的高效率代替,在我们设计开发软件的时候,应该注意整体的效率,客户的需求。赚客户的钱吗,实时适应客户的需求,敏捷开发。
xingshungames 2010-03-14
  • 打赏
  • 举报
回复
我记得以前有人测试过list<>和数组的速度,数组只比list<>快一点点,影响不大
中文名: C#4.0编程 (第6版,涵盖Visual Studio 2010以及.NET4) 原名: Programming C# 4.0: Building Windows, Web, and RIA Applications for the .NET 4.0 Framework 作者: Ian Griffiths Matthew Adams Jesse Liberty 资源格式: PDF 版本: 英文文字版/更新源代码 出版社: O'Reilly书号: 978-0-596-15983-2发行时间: 2010年08月 地区: 美国 语言: 英文 简介: 内容介绍: With its support for dynamic programming, C# 4.0 continues to evolve as a versatile language on its own. But when C# is used with .NET Framework 4, the combination is incredibly powerful. This bestselling tutorial shows you how to build web, desktop, and rich Internet applications using C# 4.0 with .NET's database capabilities, UI framework (WPF), extensive communication services (WCF), and more. In this sixth edition, .NET experts Ian Griffiths, Matthew Adams, and Jesse Liberty cover the latest enhancements to C#, as well as the fundamentals of both the language and framework. You'll learn concurrent programming with C# 4.0, and how to use .NET tools such as the Entity Framework for easier data access, and the Silverlight platform for browser-based RIA development. 目录: Chapter 1 Introducing C# Chapter 2 Basic Programming Techniques Chapter 3 Abstracting Ideas with Classes and Structs Chapter 4 Extensibility and Polymorphism Chapter 5 Composability and Extensibility with Delegates Chapter 6 Dealing with Errors Chapter 7 Arrays and Lists Chapter 8 LINQ Chapter 9 Collection Classes Chapter 10 Strings Chapter 11 Files and Streams Chapter 12 XML Chapter 13 Networking Chapter 14 Databases Chapter 15 Assemblies Chapter 16 Threads and Asynchronous Code Chapter 17 Attributes and Reflection Chapter 18 Dynamic Chapter 19 Interop with COM and Win32 Chapter 20 WPF and Silverlight Chapter 21 Programming ASP.NET Applications Chapter 22 Windows Forms

62,248

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

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