2 shenhuan111 shenhuan111 于 2014.12.11 22:08 提问

c#中数组可以直接部分赋值吗??int[] a=new int[5]={1,2}这样写报错

c#中数组可以直接部分赋值吗??int[] a=new int[5]={1,2}这样写报错,有什么方法可以实现,这样不行,有什么方法可以实现,c++中可以,C#却不行,头有点大,c++很多余C#不同

3个回答

caozhy
caozhy   Ds   Rxr 2014.12.11 22:53
已采纳

int[] a = new int[] { 1, 2 }.Concat(Enumerable.Repeat(0, 3)).ToArray();

shenhuan111
shenhuan111 嗯谢谢
3 年多之前 回复
caozhy
caozhy 另外你可以用List<int>这样可以随意增加/追加元素。
3 年多之前 回复
caozhy
caozhy 回复shenhuan111: 不指定大小,可直接写int[] a = new int[] { 1, 2 }或者int[] a = { 1, 2 }; 长度就是元素个数,不存在“部分”。
3 年多之前 回复
shenhuan111
shenhuan111 不能先定好数组大小,初始化部分值,C#没有函数可以实现??
3 年多之前 回复
caozhy
caozhyhttp://msdn.microsoft.com/zh-cn/library/bb302894(v=vs.110).aspx注意,查找FCL的函数一定要加上函数名,比如string和Enumerable都有concat方法。显然我写的是后者的。bing/msdn自己的查询不是很好用,一般用 "类名.函数名 msdn"去掉引号,直接在google里面找。
3 年多之前 回复
shenhuan111
shenhuan111 不能先定好数组大小,初始化部分值,C#没有函数可以实现吗,你给的这个数组大小还是没有固定的
3 年多之前 回复
shenhuan111
shenhuan111 我查concat 结果是这样的https://social.msdn.microsoft.com/Search/zh-CN/vstudio?query=Concat&Refinement=195&ac=4 不知道我的查方法对不对
3 年多之前 回复
caozhy
caozhy 再说FCL相当庞大,这也是C#好用的一个原因。常用函数,C#的重载形式非常丰富。而且C#的函数名、参数都非常有规律。C++的函数,比如itoa,没用过根本不知道是什么东西。C#的Convert.ToString,即便你不会编程,都能看懂。
3 年多之前 回复
caozhy
caozhy 回复shenhuan111: 和chm没有关系。那个只是文档格式。如果你希望下载离线的,可以在帮助-帮助管理器中下载。但是还是一样的格式。
3 年多之前 回复
caozhy
caozhy 回复shenhuan111: 本来就是全部列出来的啊
3 年多之前 回复
shenhuan111
shenhuan111 不是很直观,C#一个函数使用方法如果可以全列出来就好了,使用不是很方便啦,不知道是不是没用习惯,如果有chm哪种的帮助文档C#函数列出来就好了
3 年多之前 回复
caozhy
caozhy 回复shenhuan111: 就是查MSDN。另外就是查Google,我是说通过Google去定位MSDN。不知道你说MSDN麻烦在哪里。
3 年多之前 回复
shenhuan111
shenhuan111 回复caozhy: 呵呵,C#不像C++那样有帮助文档,而且C++的帮助文档简单明了,msdn太麻烦了,而且c#不是很明白的,特别难,C#有什么帮助文档比较好用吗??
3 年多之前 回复
caozhy
caozhy 就是用你的数组连上一个包含空元素的剩余的数组(concat)
3 年多之前 回复
shenhuan111
shenhuan111 这个函数什么意思,有定义吗??我对C#还不是很熟,C++还可以
3 年多之前 回复
caozhy
caozhy   Ds   Rxr 2014.12.12 00:11

作为特例,字符串可以
char[] s = "12".PadRight(10, '\0').ToArray();

shenhuan111
shenhuan111 感激,谢谢(:
3 年多之前 回复
caozhy
caozhy char[] s = "12".ToArray(); 或者 ToCharArray()
3 年多之前 回复
shenhuan111
shenhuan111 呵呵,单独写char[] s = "12";不行,C++可以,C#细节有太多与C++不同了
3 年多之前 回复
shenhuan111
shenhuan111 报错
3 年多之前 回复
shenhuan111
shenhuan111 这个好像报错char[] s = "12"这样写c#
3 年多之前 回复
shenhuan111
shenhuan111   2014.12.11 22:12

还是没有这种部分赋值的方法

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!