C# list find怎么使用

baidu_18750827 2014-08-29 05:03:43
有 class stu{
int id;
string name;
string sex;
int age;
//省去 get set
}

定义了 list<stu> add=new list<stu>();
现在我想 找 name=“abc” 且 age=16 的数据....
怎么做...
我找了个例子
add.Find(delegate(stup) { return p.Name == "abc"; });

但是要多个条件的时候 我就不知道怎么弄了

而且 我想问add.Find(delegate(stup) { return p.Name == "abc"; })不是返回stu类型吗? 还是返回别的

如果我想要这个 返回的值是索引 怎么弄
...全文
4449 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
kangkang08 2014-08-31
  • 打赏
  • 举报
回复
Lambda 很方便的!
smthgdin_020 2014-08-30
  • 打赏
  • 举报
回复
add.Find(delegate(stu p) { return p.Name == "abc"; }); find里面是个匿名方法,{ return p.Name == "abc"; }这个代码块就是方法体,就和平时写方法一样:add.Find(delegate(stup) { return p.Name == "abc" && p.age==15; }); 除了使用linq扩展方法外,也可以使用普通的linq查询。
白衣如花 2014-08-30
  • 打赏
  • 举报
回复
既然用了匿名方法,直接用lambda表达式或者linq呗 add.Find(s => s.Name .Equals("abc") && s.Age == 15) // 返回Student对象 var result = from s in add where s.Name .Equals("abc") && s.Age == 15 select s; // 返回Student对象的集合
bdmh 2014-08-29
  • 打赏
  • 举报
回复
s.jid.Server=="op" 两个等号
baidu_18750827 2014-08-29
  • 打赏
  • 举报
回复
引用 2 楼 anchenyanyue 的回复:

add.Find(s => s.Name == "abc" && g.age==16);
不对啊...
  onlineInfo.Find(s=>s.jid.User==id &&s.jid.Server="op");
1 运算符“&&”无法应用于“bool”和“string”类型的操作数 F:\Work\001_少年宫\001_标准版\McsCPServer\McsXMPP\AutoSendMsg.cs 113 40 Mcs.XMPP
WM_JAWIN 2014-08-29
  • 打赏
  • 举报
回复
好像还可以这样子,var result=from t in add where t.name="abc" && t.name="def" select t
於黾 2014-08-29
  • 打赏
  • 举报
回复
add.Find(delegate(stup) { return p.Name == "abc"; }); 确定这个好用?那就稍微改改 add.Find(delegate(stup) { return p.Name == "abc" && p.age==15; });
暗尘掩月 2014-08-29
  • 打赏
  • 举报
回复

add.Find(s => s.Name == "abc" && g.age==16);
bdmh 2014-08-29
  • 打赏
  • 举报
回复
list.Find(v => v < 10 && v > 5);

110,529

社区成员

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

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

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