2 tankgoing tankgoing 于 2018.05.14 17:01 提问

c#中list要怎么取值对应起来

我有一个list 比如有3个学生 学生有名字性别年龄 我在DropDownList里显示学生的名字 然后取一个值很方便 当时我显示的是名字 然后selectedavlue是性别 现在请问我要取到年龄 那我应该怎么写才能对应起来。。。

//stu是个list包含stuName,stuSex,stuAge
string[] stuNameList=stu.Select(x=>x.stuName).ToArray();
string[] stuSexList=stu.Select(x=>x.stuSex).ToArray();
for(int i=0;i<stuNameList..Count;i++){
 DrodDownList1.Items.Add(new ListItem(stuNameList[i],stuSexList[i]));

4个回答

showbo
showbo   Ds   Rxr 2018.05.14 17:40
已采纳

ListItem的value多增加年龄值,用|分隔开就可以一次取数据了

 string[] stuNameList=stu.Select(x=>x.stuName).ToArray();
string[] stuSexList=stu.Select(x=>x.stuSex).ToArray();
string[] stuAgeList=stu.Select(x=>x.stuAge).ToArray();
for(int i=0;i<stuNameList..Count;i++){
 DrodDownList1.Items.Add(new ListItem(stuNameList[i],stuSexList[i]+"|"+stuAgeList));

 ===>取值
string []arr=DrodDownList1.SelectedItem.Value.Split('|');///
caozhy
caozhy lz另外可以看看displaymember和valuemember属性,分别设置为学生名字、id的属性,就可以自动获取啦。
13 天之前 回复
caozhy
caozhy bobo的方法好,又学习了。
13 天之前 回复
MNBVCXZSL
MNBVCXZSL   2018.05.14 17:38

selectedavlue可以加年龄加性别 用分隔符隔开。
string[] stuAgeList=stu.Select(x=>x.stuAge).ToArray();
DrodDownList1.Items.Add(new ListItem(stuNameList[i],stuSexList[i]+"|"+stuAgeList[i]));

string[] SexAge=value.Split('|');
string selectedSex= SexAge[0]; //选择的性别
string selectedAge= SexAge[1]; //选择的年龄

qq_23126581
qq_23126581   Rxr 2018.05.14 17:13

stu是个list是吧,也就是List stu了,对吧?user是实体类,那么只需循环,

for(int i=0;i<stu.Count;i++)
{
     int age=stu[i].stuAge;

}

caozhy
caozhy 是的,循环就可以了。
13 天之前 回复
qq_23126581
qq_23126581 这个list没有主键嘛?虽然可以通过名称去找,但是姓名可能重复,你可以User user=stu.Find(g=>g.name==stuName); int age=user.stuAge;
13 天之前 回复
tankgoing
tankgoing 取出来会的。。要怎么对应起来才是关键啊
13 天之前 回复
huachengming
huachengming   2018.05.27 09:03

你的stu对象student
你对对象显示到你的DrodDownList1的时候
var item = new ListItem(stuNameList[i],stuSexList[i]+"|"+stuAgeList)
item.Tag=stu对象

取的时候直接取选中的item的tag as student
就是你要的对象了·

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