C# List> 赋值问题

brook_zhou 2011-01-11 01:40:07
各位高手看以下代码

List<string> myCode = new List<string>();
myCode.Add("0");
myCode.Add("1");
myCode.Add("2");
myCode.Add("3");
myCode.Add("4");
myCode.Add("5");
myCode.Add("6");
myCode.Add("7");
myCode.Add("8");
myCode.Add("9");
List<List<string>> lastList=new List<List<string>>();
List<string> item = new List<string>();

item.Add("a");
item.Add("b");
item.Add("c");
item.Add("d");
item.Add("e");
item.Add("f");
item.Add("g");
item.Add("h");
item.Add("i");


for (int i = 0; i < 10; i++)
{
lastList.Add(item);
}

for (int j = 0; j < 10; j++)
{
lastList[j][0] = myCode[j];
}
本来lastList输出的值应是这样lastList[0][0]=0...lastList[2][0]=2...
但是现在全部变成最后一个值lastList[0][0]=9...lastList[1][0]=9.....lastList[2][0]=9
请各位高手看看问题出在哪.先谢过了
...全文
3190 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
brook_zhou 2011-01-11
  • 打赏
  • 举报
回复
搞定了,谢谢各位回复,按9楼的将对象复制过去就行了
s8975565 2011-01-11
  • 打赏
  • 举报
回复
真没明白你要表达什么意思!
brook_zhou 2011-01-11
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 sprc_lcl 的回复:]

你代码里有一句改为:
lastList.Add(item.Select(s=>s).ToList());
[/Quote]
sprc_lcl,我问一下,里面的s 代表什么?
sprc_lcl 2011-01-11
  • 打赏
  • 举报
回复
你代码里有一句改为:
lastList.Add(item.Select(s=>s).ToList());
brook_zhou 2011-01-11
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 lgz_asp_net 的回复:]

lastList.Add(item); 每次都把整个item都加进去了啊


LZ是想弄个KEY VALUE的功能吗?用Dictionary<string, string>这个多好用啊
[/Quote]
这个没用过
sprc_lcl 2011-01-11
  • 打赏
  • 举报
回复
比如:
string str = "1";
for(..)
{
str = j.ToString();
//这里str也j啊
}

你就是在为同一对象赋值
brook_zhou 2011-01-11
  • 打赏
  • 举报
回复
我是用来存放多个String数组的是取新浪股票数据
brook_zhou 2011-01-11
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 sprc_lcl 的回复:]

C# code


for (int i = 0; i < 10; i++)
{
lastList.Add(item); //这里你是把同一个对象重复的加入到一个列表
}

for (int j = 0; j < 10; j++)
{
lastList[j][0] =……
[/Quote]
我想问一下,之后我再单独赋值,不行吗?for (int j = 0; j < 10; j++)
{
lastList[j][0] = myCode[j];
//这里我单个输出lastList[j][0] 的值是对的呀
}
//走出for之后就变了
q107770540 2011-01-11
  • 打赏
  • 举报
回复
思路比较乱

最终想实现的目的是什么
lgz_asp_net 2011-01-11
  • 打赏
  • 举报
回复
lastList.Add(item); 每次都把整个item都加进去了啊


LZ是想弄个KEY VALUE的功能吗?用Dictionary<string, string>这个多好用啊
brook_zhou 2011-01-11
  • 打赏
  • 举报
回复
各位高手来帮忙看看问题出在哪,先谢过了!
sprc_lcl 2011-01-11
  • 打赏
  • 举报
回复


for (int i = 0; i < 10; i++)
{
lastList.Add(item); //这里你是把同一个对象重复的加入到一个列表
}

for (int j = 0; j < 10; j++)
{
lastList[j][0] = myCode[j];//这是你是在为同一个对像(item)的第0位赋值 item[0] = myCode[j];
}
List<String>不能赋值List List<String>不能赋值List 1.首先,二者不是父子类关系。 如果是普通的父子类关系,由于Java的多态性,底层的后期绑定机制会在运行时检索子类方法列表,从而实现多态。 2.List属于泛型。(也算是多态的一种) Java的泛型实现是基于类型擦除的。换句话说,List<String>与List由于类型擦除,在编译后会映射到相同的List类型上,也就是运行时实际无法区分二者,不过在取用时,编译器会进行类型还原,从而变为原来的List<String>与List

110,502

社区成员

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

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

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