这样的数组关系咋整

dstcs3 2011-07-27 06:44:04
string[] str1 = {"a","b","c"};
string[] str2 = null;

如果str2只比str1多一个d,可不可以写成:
str2 = str1 + "d";

该怎么写?
...全文
97 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
shaofei830927 2011-07-27
  • 打赏
  • 举报
回复
多看看基础
数组的存数方式在内存中是连续的,所以数组在初始化的时候确定了固定长度,这个长度是不会改变的。

一切改变数组长度的操作 肯定是由重新开辟空间,然后数组复制两部完成的

于 string[] str1 = { "a", "b", "c" };
string[] str2 = (string.Join(",", str1) + ",d").Split(',');
这种东西不是必须就尽量不要用

可以用 arrayList 或者 StringBuilder 和 "".ToCharArray()的组合来完成

言多必失 2011-07-27
  • 打赏
  • 举报
回复

string[] str1 = { "a", "b", "c" };

List<string> str1_list=new List<string>(str1);
str1_list.Add("d");

string[] str2 = str1_list.ToArray();




就这样的,好理解。不建议ArrayList原因大家都明白的。
至于 string[] str1 = { "a", "b", "c" };
string[] str2 = (string.Join(",", str1) + ",d").Split(',');
是3.0里面的东西,在掌握第一种情况后,也是很值得学习的。
挨踢直男 2011-07-27
  • 打赏
  • 举报
回复
        string[] str1 = { "a", "b", "c" };
string[] str2 = (string.Join(",", str1) + ",d").Split(',');

renjunfeng 2011-07-27
  • 打赏
  • 举报
回复
 string[] str1 = { "a", "b", "c" };

List<string> str1_list=new List<string>(str1);
str1_list.Add("d");

string[] str2 = str1_list.ToArray();
dalmeeme 2011-07-27
  • 打赏
  • 举报
回复
你的意思是说,如果str1里的元素很多,定义str2怎么简单些是吧?
你这样试试:
	string[] str1 = { "a", "b", "c" };
string[] str2 = new string[str1.Length + 1];
str1.CopyTo(str2, 0);
str2[str2.Length - 1] = "d";

这样用3句代码可以定义str2并初始化了。
jshzp 2011-07-27
  • 打赏
  • 举报
回复
当然不能直接写成 str1 + "d"!
你可以使用list<>类或者ArrayList类定义你的str1和str2,然后使用其中的add方法
例如:

List<string> str1,str2;
str1 = str2;
str1.Add("d");
小赖赖 2011-07-27
  • 打赏
  • 举报
回复
不行,只能先复制数组,然后在后面添加元素
jeje 2011-07-27
  • 打赏
  • 举报
回复
你怎么不用ArrayList
ArrayList可以用Add方法直接添加

110,533

社区成员

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

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

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